public async Task UpdateGroupAsync([FromBody] GroupIdViewModel group) { if (ModelState.IsValid) { try { var newGroup = await groupRepository.Get(group.Id); if (newGroup == null) { throw new Exception("Группа не найдена!"); } newGroup.Number = group.Number.Value; newGroup.CourseId = group.CourseId; await groupRepository.Update(newGroup); var records = GroupSubjectMappingModelRepository.Get(r => r.GroupId == newGroup.Id).ToList(); if (records != null && records.Count() > 0) { foreach (var record in records) { await GroupSubjectMappingModelRepository.Delete(record); } } if (group.Subject != null && group.Subject.Count() > 0) { foreach (var subject in group.Subject) { var tmpSb = await subjectRepository.Get(subject.Id); if (tmpSb != null) { GroupSubjectMappingModel newGroupSubject = new GroupSubjectMappingModel() { GroupId = newGroup.Id, SubjectId = subject.Id }; await GroupSubjectMappingModelRepository.Insert(newGroupSubject); } } } string msg = String.Format("Группа '{0}' успешно изменена!", newGroup.Number); Response.StatusCode = StatusCodes.Status200OK; await Response.WriteAsync(JsonConvert.SerializeObject(new { success = msg }, new JsonSerializerSettings { Formatting = Formatting.Indented })); } catch (Exception e) { ModelState.AddModelError("error", e.Message); await Response.BadRequestHelper(ModelState.Values); } Response.StatusCode = StatusCodes.Status200OK; await Response.WriteAsync("Ok"); } else { await Response.BadRequestHelper(ModelState.Values); } }
public async Task CreateGroupAsync([FromBody] GroupViewModel group) { if (ModelState.IsValid) { try { var exists = groupRepository.Get(r => r.Number == group.Number).SingleOrDefault(); if ((exists != null) && (exists.CourseId == group.CourseId)) { throw new Exception(String.Format("Группа номер {0} уже существует на этом курсе!", exists.Number)); } var course = await courseRepository.Get(group.CourseId); if (course == null) { throw new Exception("Группа не найдена!"); } Group newGroup = new Group() { Number = group.Number.Value, CourseId = group.CourseId }; await groupRepository.Insert(newGroup); if ((group.Subject != null) && (group.Subject.Count() > 0)) { foreach (var sb in group.Subject) { var tmpSb = await subjectRepository.Get(sb.Id); if (tmpSb != null) { GroupSubjectMappingModel newGroupSubject = new GroupSubjectMappingModel() { GroupId = newGroup.Id, SubjectId = sb.Id }; await GroupSubjectMappingModelRepository.Insert(newGroupSubject); } } } string msg = String.Format("Группа '{0}' успешно создана!", newGroup.Number); Response.StatusCode = StatusCodes.Status200OK; await Response.WriteAsync(JsonConvert.SerializeObject(new { success = msg }, new JsonSerializerSettings { Formatting = Formatting.Indented })); } catch (Exception e) { ModelState.AddModelError("error", e.Message); await Response.BadRequestHelper(ModelState.Values); } } else { await Response.BadRequestHelper(ModelState.Values); } }