public async Task <IActionResult> Update([FromBody] ProductOptionTariffDto productOptionTariffDto) { ProductOptionTariff productOptionTariff = await productOptionTariffRepository.GetProductOptionTariff(productOptionTariffDto.Id); if (productOptionTariff == null) { return(StatusCode(StatusCodes.Status500InternalServerError, $"ProductOptionTariff id == {productOptionTariffDto.Id}. Not found!")); } productOptionTariff.SetName(productOptionTariffDto.Name); productOptionTariff.SetProductOption(productOptionTariffDto.ProductOptionId); productOptionTariff.RemovePriceItems(productOptionTariffDto.Prices.ToProductOptionTariffPrices()); foreach (var item in productOptionTariffDto.Prices) { Price price = new Price(item.Price.Value, item.Price.Currency); ProlongationPeriod period = new ProlongationPeriod(item.Period.Value, (PeriodUnit)item.Period.periodUnit); if (productOptionTariff.Prices.FirstOrDefault(x => x.Period == period && x.Price.Currency == price.Currency) != null) { productOptionTariff.ChangePriceItem(price, period); } else { productOptionTariff.AddPriceItem(price, period); } } await productOptionTariffRepository.Update(productOptionTariff); await unitOfWork.SaveEntitiesAsync(); return(Ok()); }
public async Task Delete(int id) { ProductOptionTariff productOptionTariff = await _ctx.ProductOptionTariffs.FirstOrDefaultAsync(x => x.Id == id); if (productOptionTariff != null) { _ctx.ProductOptionTariffs.Remove(productOptionTariff); } }
public async Task <IActionResult> GetProductOptionTariff(int id) { ProductOptionTariff productOptionTariff = await productOptionTariffRepository.GetProductOptionTariff(id); if (productOptionTariff == null) { return(StatusCode(StatusCodes.Status500InternalServerError, $"ProductOptionTariff id == {id}. Not found!")); } return(Ok(productOptionTariff.Map())); }
public static ProductOptionTariffDto Map(this ProductOptionTariff productOptionTariff) { if (productOptionTariff == null) { return(null); } else { return(new ProductOptionTariffDto { Id = productOptionTariff.Id, Name = productOptionTariff.Name, ProductOption = productOptionTariff.ProductOption.Map(), ProductOptionId = productOptionTariff.ProductOptionId, Prices = productOptionTariff.Prices.Map().ToList() }); } }
public async Task <IActionResult> Add([FromBody] ProductOptionTariffDto productOptionTariffDto) { ProductOptionTariff productOptionTariff = new ProductOptionTariff( productOptionTariffDto.ProductOptionId, productOptionTariffDto.Name); foreach (var priceItem in productOptionTariffDto.Prices) { Price price = new Price(priceItem.Price.Value, priceItem.Price.Currency); ProlongationPeriod prolongationPeriod = new ProlongationPeriod(priceItem.Period.Value, (PeriodUnit)priceItem.Period.periodUnit); productOptionTariff.AddPriceItem(price, prolongationPeriod); } await productOptionTariffRepository.Add(productOptionTariff); await unitOfWork.SaveEntitiesAsync(); return(Ok()); }
public Task Update(ProductOptionTariff productOptionTariff) { _ctx.Entry(productOptionTariff).State = EntityState.Modified; return(Task.CompletedTask); }
public Task Add(ProductOptionTariff productOptionTariff) { _ctx.AddAsync(productOptionTariff); return(Task.CompletedTask); }