/// <summary> /// Maps Name, OrganizationId /// </summary> /// <param name="dto"></param> /// <returns></returns> /// <exception cref="NullReferenceException"></exception> public static DALChangeDTO FromBLL(BLLChangeDTO dto) { if (dto == null) { throw new NullReferenceException("Can't map, BLLChangeDTO is null"); } return(new DALChangeDTO() { Name = dto.Name, OrganizationId = dto.OrganizationId }); }
/// <summary> /// Maps Id, Name, Price /// </summary> /// <param name="dto"></param> /// <returns></returns> /// <exception cref="NullReferenceException"></exception> public static ChangeDTO FromBLL(BLLChangeDTO dto) { if (dto == null) { throw new NullReferenceException("Can't map, BLLChangeDTO is null"); } return(new ChangeDTO() { Name = dto.Name, Price = dto.CurrentPrice, ChangeId = dto.Id }); }
public async Task <bool> EditChange(BLLChangeDTO changeDto) { var organization = await Uow.Organizations.FindWithCategoriesAsync(changeDto.OrganizationId); if (organization?.Categories == null || organization.Categories.Count == 0) { return(false); } var organizationCategoryIds = organization.Categories.Select(dto => dto.Id).ToList(); foreach (var category in changeDto.Categories) { if (!organizationCategoryIds.Contains(category.Id)) { return(false); } } //1.Edit product entity var change = await Uow.Changes.EditAsync(ChangeMapper.FromBLL2(changeDto)); if (change == null) { return(false); } //2. Edit product categories await Uow.ChangesInCategories.RemoveByChangeId(change.Id); foreach (var category in changeDto.Categories) { await Uow.ChangesInCategories.AddAsync(change.Id, category.Id); } //3. Add price var priceDTO = new DALPriceDTO() { Value = changeDto.CurrentPrice, ChangeId = change.Id, ValidFrom = DateTime.Now, ValidTo = DateTime.MaxValue, }; await Uow.Prices.EditAsync(priceDTO); await Uow.SaveChangesAsync(); return(true); }
public async Task <bool> AddChangeAsync(BLLChangeDTO changeDto) { var organization = await Uow.Organizations.FindWithCategoriesAsync(changeDto.OrganizationId); if (organization?.Categories == null || organization.Categories.Count == 0) { return(false); } var organizationCategoryIds = organization.Categories.Select(dto => dto.Id).ToList(); foreach (var category in changeDto.Categories) { //Make sure select categories belong to selected Organization if (!organizationCategoryIds.Contains(category.Id)) { return(false); } } //1.Add change var change = await Uow.Changes.AddAsync(ChangeMapper.FromBLL(changeDto)); //2. Add change categories foreach (var category in changeDto.Categories) { await Uow.ChangesInCategories.AddAsync(change.Id, category.Id); } //3. Add price var priceDTO = new DALPriceDTO() { Value = changeDto.CurrentPrice, ChangeId = change.Id, ValidFrom = DateTime.MinValue, ValidTo = DateTime.MaxValue, }; await Uow.Prices.AddAsync(priceDTO); await Uow.SaveChangesAsync(); return(true); }
public async Task <IActionResult> Create(CreateChangeViewModel vm) { if (ModelState.IsValid) { var changeDto = new BLLChangeDTO() { OrganizationId = vm.OrganizationId, Name = vm.ChangeName, CurrentPrice = vm.Price, Categories = vm.SelectedCategories.Select(id => new BLLCategoryMinDTO(id)).ToList() }; var result = await _bll.ChangeService.AddChangeAsync(changeDto); if (result == false) { return(BadRequest("Something went wrong while adding change")); } } return(RedirectToAction("Organization", "Dashboard", new { Id = vm.OrganizationId })); }
public async Task <IActionResult> Edit(EditChangeViewModel vm) { if (ModelState.IsValid) { var input = new BLLChangeDTO() { Id = vm.ChangeId, OrganizationId = vm.OrganizationId, CurrentPrice = vm.Price, Name = vm.ChangeName, Categories = vm.SelectedCategories.Select(i => new BLLCategoryMinDTO(i)).ToList() }; var result = await _bll.ChangeService.EditChange(input); if (result == false) { return(BadRequest()); } return(RedirectToAction("Organization", "Dashboard", new { Id = vm.OrganizationId })); } return(BadRequest()); }