changed into single selection
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
e6def6d600
commit
a0975cf083
|
|
@ -70,7 +70,7 @@ namespace _2021_backend.Controllers
|
||||||
|
|
||||||
public IActionResult GetSessions()
|
public IActionResult GetSessions()
|
||||||
{
|
{
|
||||||
var query = _context.Sessions.OrderBy(r => r.Day).ThenBy(r => r.BeginTime).ThenBy(r => r.Place).Where(e => e.Capacity > e.Students.Count + 1).Select(r => new SessionDto
|
var query = _context.Sessions.OrderBy(r => r.Day).ThenBy(r => r.BeginTime).ThenBy(r => r.Place).Where(e => e.Capacity > e.Students.Count).Select(r => new SessionDto
|
||||||
{
|
{
|
||||||
BeginTime = r.BeginTime,
|
BeginTime = r.BeginTime,
|
||||||
Day = r.Day,
|
Day = r.Day,
|
||||||
|
|
@ -98,10 +98,10 @@ namespace _2021_backend.Controllers
|
||||||
{
|
{
|
||||||
return StatusCode(400, ApiResponse.Error("INVALID_STUDENT_GUID"));
|
return StatusCode(400, ApiResponse.Error("INVALID_STUDENT_GUID"));
|
||||||
}
|
}
|
||||||
List<SessionDto> timelist;
|
SessionDto time;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
timelist = JsonSerializer.Deserialize<List<SessionDto>>(selection);
|
time = JsonSerializer.Deserialize<SessionDto>(selection);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
@ -109,15 +109,29 @@ namespace _2021_backend.Controllers
|
||||||
return StatusCode(400, ApiResponse.Error("MALFORMED_DATA"));
|
return StatusCode(400, ApiResponse.Error("MALFORMED_DATA"));
|
||||||
};
|
};
|
||||||
//get the selected session guids;
|
//get the selected session guids;
|
||||||
List<Guid> targetSessions;
|
Guid targetSession = Guid.Empty;
|
||||||
var sessions = Context.Sessions.ToList();
|
var sessions = Context.Sessions.ToList();
|
||||||
targetSessions = sessions.FindAll((Session s) =>
|
var s = sessions.Find((Session s) =>
|
||||||
{
|
{
|
||||||
return timelist.Any(it => it.Day == s.Day && it.BeginTime == s.BeginTime);
|
return time.Day == s.Day && time.BeginTime == s.BeginTime;
|
||||||
}).Select(it => it.Guid).ToList();
|
});
|
||||||
stu.Timelist = targetSessions;
|
var overwritten = false;
|
||||||
|
if (s.Students.Count >= s.Capacity) return Ok(ApiResponse.Error("OUT_OF_CAPACITY"));
|
||||||
|
if (Context.Sessions.Find(stu.InterviewTime) != null)
|
||||||
|
{
|
||||||
|
var olds = Context.Sessions.Find(stu.InterviewTime);
|
||||||
|
olds.Students.Remove(stu.Guid);
|
||||||
|
Context.SaveChanges();
|
||||||
|
overwritten = true;
|
||||||
|
}
|
||||||
|
targetSession = s.Guid;
|
||||||
|
s.Students.Add(stu.Guid);
|
||||||
|
stu.Timelist = new List<Guid> { targetSession};
|
||||||
stu.Status = status.已选时间;
|
stu.Status = status.已选时间;
|
||||||
await Context.SaveChangesAsync();
|
stu.InterviewTime = s.Guid;
|
||||||
|
await TencentSMS.Send(Context, SMSType.TimeSet, stu, "smsbot");
|
||||||
|
Context.SaveChanges();
|
||||||
|
if (overwritten) return Ok(ApiResponse.Success("overwritten"));
|
||||||
return Ok(ApiResponse.Success("success"));
|
return Ok(ApiResponse.Success("success"));
|
||||||
//return Ok(ApiResponse.Success("报名结束了"));
|
//return Ok(ApiResponse.Success("报名结束了"));
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue