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());
        }
Esempio n. 2
0
        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());
        }
Esempio n. 6
0
 public Task Update(ProductOptionTariff productOptionTariff)
 {
     _ctx.Entry(productOptionTariff).State = EntityState.Modified;
     return(Task.CompletedTask);
 }
Esempio n. 7
0
 public Task Add(ProductOptionTariff productOptionTariff)
 {
     _ctx.AddAsync(productOptionTariff);
     return(Task.CompletedTask);
 }