public async Task <bool> ChangeActiveCourseStatus(ViewModels.ActiveCourseStatus dto) { try { var query = await(from x in context.PersonCourses where x.CourseId == dto.CourseId && dto.People.Contains((int)x.PersonId) select x).ToListAsync(); //pending if (dto.StatusId != 72) { foreach (var x in dto.People) { var item = query.FirstOrDefault(q => q.PersonId == x); if (item == null) { item = new PersonCourse() { PersonId = x, CourseId = dto.CourseId, }; context.PersonCourses.Add(item); } item.StatusId = dto.StatusId; item.DateStatus = DateTime.Now; item.StatusConfirmed = true; item.Remark = dto.Remark; item.CerNumber = null; item.DateIssue = null; if (dto.StatusId == 71) { item.CerNumber = dto.No; item.DateIssue = dto.IssueDate; } } } else { foreach (var x in query) { context.PersonCourses.Remove(x); } } return(true); } catch (Exception ex) { return(false); } }
public async Task <IHttpActionResult> PostChangeStatus(ViewModels.ActiveCourseStatus dto) { var result = await unitOfWork.CourseRepository.ChangeActiveCourseStatus(dto); if (result) { var saveResult = await unitOfWork.SaveAsync(); if (saveResult.Code != HttpStatusCode.OK) { return(saveResult); } var summary = await unitOfWork.CourseRepository.GetActiveCourseSummary(dto.CourseId); return(Ok(summary)); } else { return(InternalServerError()); } }