public async Task <IActionResult> Create([FromBody] ProductDTO productDTO) { var systemOfMeasurement = await _productsRepository.AssignMeasurementUnitToMeasurementSystem(productDTO.UnitOfMeasurement); var product = Product.Create( productDTO.Name, productDTO.Brand, productDTO.Quantity, productDTO.UnitOfMeasurement, systemOfMeasurement); await _productsRepository.Add(product); foreach (var price in productDTO.Prices) { var store = await _storesRepository.GetByName(price.StoreName); var productStore = ProductStore.Create( product.Id, store.FirstOrDefault().Id, price.Price); await _productStoresRepository.Add(productStore); } return(Ok(product)); }
public async Task AddProductCustom(string name, string brand, double quantity, string unitOfMeasurement, string storeName, double price) { Product product; if (!await Exists(name, brand, quantity, unitOfMeasurement)) { Guid storeId; if (!await _storesRepository.Exists(storeName)) { Store store = Store.Create(storeName, "", ""); await _storesRepository.Add(store); storeId = store.Id; } else { storeId = (await _storesRepository.GetByName(storeName)).FirstOrDefault().Id; } int measurementSystem = (int)MeasureSystem.Undefined; if (unitOfMeasurementConversion.ContainsKey(unitOfMeasurement)) { measurementSystem = unitOfMeasurementConversion[unitOfMeasurement].Item2; } else { measurementSystem = (int)MeasureSystem.Undefined; } product = Product.Create(name, brand, quantity, unitOfMeasurement, measurementSystem); await Add(product); Guid productId = product.Id; ProductStore productStore; productStore = ProductStore.Create(productId, storeId, price); await _productStoresRepository.Add(productStore); } }
public async Task <IActionResult> FilterRecipes([FromBody] FilterDTO filterDTO) { List <Product> includingProducts = new List <Product>(); List <Product> includingBrands = new List <Product>(); List <Store> onlyStores = new List <Store>(); List <string> includedProductsList = filterDTO.IncludedProducts.Split(',').ToList(); List <string> includingBrandsList = filterDTO.IncludingBrands.Split(',').ToList(); List <string> onlyStoresList = filterDTO.OnlyStores.Split(',').ToList(); foreach (var product in includedProductsList) { includingProducts.AddRange(await _productsRepository.GetByName(product)); } foreach (var brand in includingBrandsList) { includingBrands.AddRange(await _productsRepository.GetByBrand(brand)); } foreach (var store in onlyStoresList) { onlyStores.AddRange(await _storesRepository.GetByName(store)); } RecipeFilter filter = new RecipeFilter { Cost = filterDTO.Cost, Name = filterDTO.Name, Rating = filterDTO.Rating, Votes = filterDTO.VotesNumber, CookingTime = filterDTO.CookingTime, IncludingIngreditents = includingProducts, IncludingBrands = includingBrands, OnlyStores = onlyStores }; return(Ok(await _recipesRepository.GetByFilter(filter))); }
public async Task <IActionResult> Get(string name) { return(Ok(await _storesRepository.GetByName(name))); }
public Store GetByName(string name) { var result = _StoreRepository.GetByName(name); return(result); }