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(); } }
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));