/// <summary> /// Update an entity. /// </summary> /// <param name="model"></param> /// <returns></returns> public CostCenterViewModel Update(CostCenterViewModel model) { this.ThrowExceptionIfExist(model); var entity = model.ToEntity(); entity = this._CostCentersRepository.Update(entity); ConditionFilter <CostCenter, long> conditionFilter = new ConditionFilter <CostCenter, long>() { Query = (x => x.ParentKeyCostCenterId == entity.Id) }; var childs = this._CostCentersRepository.Get(conditionFilter); if (childs.Count() > 0) { var ar = childs.FirstOrDefault(x => x.Language == Language.Arabic); ar.Name = model.NameAr; ar.Description = model.DescriptionAr; this._CostCentersRepository.Update(ar); var en = childs.FirstOrDefault(x => x.Language == Language.English); en.Name = model.NameEn; en.Description = model.DescriptionEn; this._CostCentersRepository.Update(en); } #region Commit Changes this._unitOfWork.Commit(); #endregion model = entity.ToModel(); return(model); }
/// <summary> /// Delete an entity. /// </summary> /// <param name="model"></param> public void Delete(CostCenterViewModel model) { var entity = model.ToEntity(); this._CostCentersRepository.Delete(entity); #region Commit Changes this._unitOfWork.Commit(); #endregion }
/// <summary> /// Throw an exception if name is exist. /// </summary> /// <param name="model">CostCenter view model</param> public void ThrowExceptionIfExist(CostCenterViewModel model) { ConditionFilter <CostCenter, long> condition = new ConditionFilter <CostCenter, long> { Query = (entity => entity.Code == model.Code && entity.Id != model.Id) }; var existEntity = this._CostCentersRepository.Get(condition).FirstOrDefault(); if (existEntity != null) { throw new ItemAlreadyExistException((int)ErrorCodeEnum.CodeAlreadyExist); } }
public IActionResult AddCostCenter(CostCenterViewModel model) { if (model.LocationId == 0) { var locationList = _farm.GetLocationList(null); ViewBag.LocationList = locationList; _toastNotification.AddErrorToastMessage("Need to select a Location", new ToastrOptions { PositionClass = ToastPositions.TopCenter }); return(View(model)); } var farm = _farm.AddCostCenter(model, GetCurrentUserAsync().Result.UserName).Result; if (ModelState.IsValid) { if (farm.Succeeded) { _toastNotification.AddSuccessToastMessage(farm.OkMessage, new ToastrOptions { PositionClass = ToastPositions.TopCenter }); return(RedirectToAction(nameof(ListCostCenter))); } _toastNotification.AddWarningToastMessage(farm.Errors, new ToastrOptions { PositionClass = ToastPositions.TopCenter }); var locationList = _farm.GetLocationList(null); ViewBag.LocationList = locationList; return(View(nameof(AddCostCenter), model)); } else { var locationList = _farm.GetLocationList(null); ViewBag.LocationList = locationList; return(View(nameof(AddCostCenter), model)); } }
/// <summary> /// Add an entity. /// </summary> /// <param name="model"></param> /// <returns></returns> public CostCenterViewModel Add(CostCenterViewModel model) { this.ThrowExceptionIfExist(model); var entity = model.ToEntity(); entity = this._CostCentersRepository.Add(entity); var entityAr = new CostCenter { Id = entity.Id, Name = model.NameAr, Description = model.DescriptionAr, Language = Language.Arabic }; entity.ChildTranslatedCostCenters.Add(entityAr); this._CostCentersRepository.Add(entityAr); var entityEn = new CostCenter { Id = entity.Id, Name = model.NameEn, Description = model.DescriptionEn, Language = Language.English }; entity.ChildTranslatedCostCenters.Add(entityEn); this._CostCentersRepository.Add(entityEn); #region Commit Changes this._unitOfWork.Commit(); #endregion model = entity.ToModel(); return(model); }
public void OnGet(int costCenterID, int locationId) { Input = new CostCenterViewModel(); CostCenterId = costCenterID; LocationId = locationId; CanEdit = User.Claims.FirstOrDefault(x => x.Type == "type")?.Value == "authorizer" || User.Claims.FirstOrDefault(x => x.Type == "type")?.Value == "superuser"; ////////////////////// Account = _ctx.AccountUsers //.Include(x => x.Account) // .ThenInclude(x => x.Locations) // .ThenInclude(x => x.Address) //.Include(x => x.Account) // .ThenInclude(x => x.Locations) // .ThenInclude(x => x.CostCenters) // .ThenInclude(x => x.CostCenterAuth) .Include(x => x.Account) .ThenInclude(x => x.AccountUsers) .ThenInclude(x => x.User) .FirstOrDefault(x => x.UserId == User.FindFirst(ClaimTypes.NameIdentifier).Value&& x.Active) .Account; var costCenter = _ctx.CostCenters .Include(c => c.CostCenterAuth) .Include(c => c.Location) .FirstOrDefault(c => c.Id == costCenterID); var costCenterUsers = new List <CostCenterAuth>(); if (costCenter != null) { CostCenter = new CostCenterViewModel() { Id = costCenterID, Name = costCenter.Name, LocationId = costCenter.LocationId, Location = costCenter.Location.Name, AuthorizerId = costCenter.AuthorizerId, //UserId = costCenter.UserId, }; costCenterUsers = costCenter.CostCenterAuth.ToList(); } else { CostCenter = new CostCenterViewModel(); } Users = Account.AccountUsers.Where(x => x.User.Type == Domain.Enums.UserType.BusinessUser).Select(x => x.User).OrderBy(s => s.FirstName).ToList(); Authorizers = Account .AccountUsers .Where(x => x.User.Type == Domain.Enums.UserType.Authorizer) .Select(u => new UserViewModel() { Id = u.User.Id, Email = u.User.Email, Name = u.User.FirstName, Surname = u.User.LastName }) .OrderBy(u => u.Name) .ToList(); foreach (var item in Users) { Input.Users.Add(new UserViewModel() { Id = item.Id, Email = item.Email, Name = item.FirstName, Surname = item.LastName, IsChecked = costCenterUsers.Any(ca => ca.Userid == item.Id) }); } }