public ResponseBase GetOffer(decimal milkneed, decimal coffeneed, decimal waterneed, bool milkCheck, bool coffeCheck, bool waterCheck) { ComponentHelper componentHelper = new ComponentHelper(); using (var ctx = new CoffeShopContext()) { List <Component> componentList = ctx.Components.ToList(); var checkStocksAreValid = componentHelper.CheckStocksAreValid(milkneed, coffeneed, waterneed, componentList, milkCheck, coffeCheck, waterCheck); if (checkStocksAreValid.IsOk) { decimal price = componentHelper.CalculatePrice(milkneed, coffeneed, waterneed, componentList); if (milkCheck) { decimal milkPrice = componentList.Where(x => x.ComponentName == "Milk").Select(x => x.UnitPrice).FirstOrDefault(); price = componentHelper.AddExtraUnitPricePriceToPrice(price, milkPrice); } if (coffeCheck) { decimal coffePrice = componentList.Where(x => x.ComponentName == "Coffe").Select(x => x.UnitPrice).FirstOrDefault(); price = componentHelper.AddExtraUnitPricePriceToPrice(price, coffePrice); } if (waterCheck) { decimal waterPrice = componentList.Where(x => x.ComponentName == "Water").Select(x => x.UnitPrice).FirstOrDefault(); price = componentHelper.AddExtraUnitPricePriceToPrice(price, waterPrice); } return(new ResponseBase { ExtraData = price.ToString("#.##"), IsOk = true }); } return(checkStocksAreValid); } }