public IActionResult Add(AddYearSystemDTO addYearSystemDTO) { try { addYearSystemDTO.Name = addYearSystemDTO.Name.Trim(); if (string.IsNullOrWhiteSpace(addYearSystemDTO.Name)) { var message = Messages.EmptyName; message.ActionName = "Add"; message.ControllerName = "Year System"; return(BadRequest(message)); } var settingId = addYearSystemDTO.Settings.Select(c => c.Id).ToList(); var mainSettinId = this._settingsRepositroy.Get().Select(c => c.Id).ToList(); // this number of role shoud replace in correct way if (settingId.Count < mainSettinId.Count()) { var message = new BadRequestErrors(); message.ActionName = "Add"; message.ControllerName = "Year System"; message.Message = "لم يتم إرسال كامل الإعدادات"; return(Conflict(message)); } settingId.Sort(); if (settingId.Except(mainSettinId).Any() || mainSettinId.Except(settingId).Any()) { var message = new BadRequestErrors() { ActionName = "Add", ControllerName = "Year System", Message = "لام يتم إرسال جميع الإعدادات او تم إرسال قيمة خاطئة" }; return(Conflict(message)); } if (addYearSystemDTO.IsMain) { var oldMain = _abstractUnitOfWork.Repository <YearSystem>().Get(c => c.IsMain).FirstOrDefault(); if (oldMain != null) { oldMain.IsMain = false; _abstractUnitOfWork.Repository <YearSystem>().Update(oldMain, UserName()); } } YearSystem yearSystem = _mapper.Map <YearSystem>(addYearSystemDTO); _abstractUnitOfWork.Add(yearSystem, UserName()); foreach (var item in addYearSystemDTO.Settings) { var setting = _settingsRepositroy.Find(item.Id); var settingYearSystem = new SettingYearSystem { YearSystem = yearSystem.Id, Setting = setting, Count = item.Count, Note = item.Note }; _abstractUnitOfWork.Add(settingYearSystem, UserName()); } _abstractUnitOfWork.Commit(); return(Ok(_mapper.Map <ResponseYearSystem>(yearSystem))); } catch (Exception ex) { return(BadRequestAnonymousError()); } }
public IActionResult UpdateYearSystem(int Id, [FromBody] AddYearSystemDTO updateYearSystem) { try { var orginalYearSystem = _abstractUnitOfWork.Repository <YearSystem>().Get(c => c.Id == Id, c => c.SettingYearSystem, c => c.Years).SingleOrDefault(); if (orginalYearSystem == null) { var message = Messages.NotFound; message.ActionName = "Update"; message.ControllerName = "YearSystem"; return(NotFound(message)); } if (orginalYearSystem.Years.Count > 0) { var newSettingList = updateYearSystem.Settings; var oldSettingList = orginalYearSystem.SettingYearSystem.ToList(); for (int i = 0; i < oldSettingList.Count; i++) { var settingId = oldSettingList[i].SettingId; var newSetting = newSettingList.Where(c => c.Id == settingId).SingleOrDefault(); if (newSetting == null) { //لم يتم إرسال كامل الإعدادات return(Conflict()); } if (newSetting.Count != oldSettingList[i].Count) { return(Conflict()); } oldSettingList[i].Note = newSetting.Note; _abstractUnitOfWork.Update(oldSettingList[i], UserName()); } } else { var newSettingList = updateYearSystem.Settings; var oldSettingList = orginalYearSystem.SettingYearSystem.ToList(); for (int i = 0; i < oldSettingList.Count; i++) { var settingId = oldSettingList[i].SettingId; var newSetting = newSettingList.Where(c => c.Id == settingId).SingleOrDefault(); if (newSetting == null) { //لم يتم إرسال كامل الإعدادات return(Conflict()); } oldSettingList[i].Count = newSetting.Count; oldSettingList[i].Note = newSetting.Note; _abstractUnitOfWork.Update(oldSettingList[i], UserName()); } } orginalYearSystem.IsMain = updateYearSystem.IsMain; orginalYearSystem.Name = updateYearSystem.Name; orginalYearSystem.Note = updateYearSystem.Note; _abstractUnitOfWork.Update(orginalYearSystem, UserName()); _abstractUnitOfWork.Commit(); return(Ok()); } catch { return(BadRequestAnonymousError()); } }