public IProductM FactoryCreate(ProductViewModelM product)
 {
     if (product.ProductQualityName.Equals("Expensive"))
     {
         return(new AdvancedProductM());
     }
     else if (product.ProductQualityName.Equals("Low"))
     {
         return(new LowProductM());
     }
     else
     {
         throw new ArgumentException();
     }
 }
Exemple #2
0
        public async Task <decimal> GetCompetitionResultOfProduct(ProductViewModelM productModel)
        {
            var product = _productFactoryCreation.FactoryCreate(productModel);
            var date    = _productCreationTimeService.GetProductCreationDate();

            var pricing = _pricingService.GetValueReview(product.Price);

            await _productRepository.Add(new ProductDto
            {
                Name  = product.Name,
                Price = pricing
            });

            return(_productPricingService.CalculatePricing(pricing));
        }
 public async Task <IHttpActionResult> GetCompetitionResultOfProduct([FromBody] ProductViewModelM productQualityModel) => Ok(await _productFacadeService.GetCompetitionResultOfProduct(productQualityModel));