示例#1
0
        public async Task <IActionResult> UpdateAssignedSubject(int id, AssignSubjectDtoForEdit subject)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _response = await _repo.EditAssignedSubject(id, subject);

            return(Ok(_response));
        }
示例#2
0
        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);
            }
        }