public async Task <IActionResult> UpdateAssignedSubject(int id, AssignSubjectDtoForEdit subject) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _response = await _repo.EditAssignedSubject(id, subject); return(Ok(_response)); }
public async Task <ServiceResponse <object> > EditAssignedSubject(int id, AssignSubjectDtoForEdit model) { try { if (model.SubjectIds.Count() > 0) { List <SubjectAssignment> ToRemove = model.ClassId > 0 ? _context.SubjectAssignments.Where(s => s.ClassId.Equals(model.ClassId)).ToList() : _context.SubjectAssignments.Where(s => s.SemesterId.Equals(model.SemesterId)).ToList(); if (ToRemove.Count() > 0) { _context.SubjectAssignments.RemoveRange(ToRemove); await _context.SaveChangesAsync(); var ListToAdd = new List <SubjectAssignment>(); foreach (var SubjectId in model.SubjectIds) { ListToAdd.Add(new SubjectAssignment { SubjectId = SubjectId, ClassId = model.ClassId > 0 ? model.ClassId : null, SemesterId = model.SemesterId > 0 ? model.SemesterId : null, SchoolBranchId = _LoggedIn_BranchID, //TableOfContent = model.TableOfContent, CreatedById = _LoggedIn_UserID, CreatedDateTime = DateTime.UtcNow }); } await _context.SubjectAssignments.AddRangeAsync(ListToAdd); await _context.SaveChangesAsync(); _serviceResponse.Message = CustomMessage.Updated; _serviceResponse.Success = true; } else { _serviceResponse.Message = CustomMessage.RecordNotFound; _serviceResponse.Success = false; } return(_serviceResponse); } else { _serviceResponse.Message = CustomMessage.DataNotProvided; _serviceResponse.Success = false; return(_serviceResponse); } } catch (DbUpdateException ex) { if (ex.InnerException.Message.Contains("Cannot insert duplicate key row")) { _serviceResponse.Success = false; _serviceResponse.Message = CustomMessage.SqlDuplicateRecord; } else { throw ex; } return(_serviceResponse); } }