public static bool SellSomeShawarma(string name) { if (name == null) { throw new ArgumentNullException(nameof(name)); } using (var sb = new ShawarmaBaseEntities()) { Shawarma shawarma = sb.Shawarma.FirstOrDefault(shaw => shaw.ShawarmaName == name); if (shawarma == null) { return(false); } foreach (var ingradient in shawarma.ShawarmaRecipe) { if (ingradient.Weight > ingradient.Ingradient.TotalWeight) { return(false); } ingradient.Ingradient.TotalWeight -= ingradient.Weight; } return(SaveIt(sb)); } }
public static bool SetNewPrice(string name, decimal price, string comment, string sellingPointTitle) { if (name == null) { throw new ArgumentNullException(nameof(name)); } if (comment == null) { throw new ArgumentNullException(nameof(comment)); } if (sellingPointTitle == null) { throw new ArgumentNullException(nameof(sellingPointTitle)); } if (price <= 0) { throw new ArgumentOutOfRangeException(nameof(price)); } using (var sb = new ShawarmaBaseEntities()) { Shawarma shawarma = sb.Shawarma.FirstOrDefault(sh => sh.ShawarmaName == name); if (shawarma == null) { return(false); } SellingPoint sp = sb.SellingPoint.FirstOrDefault(s => s.ShawarmaTitle == sellingPointTitle); if (sp == null) { return(false); } PriceController pc = sb.PriceController.FirstOrDefault(p => p.ShawarmaId == shawarma.ShawarmaId && p.SellingPointId == sp.SellingPointId); if (pc == null) { pc = new PriceController { Price = price, Comment = comment, SellingPointId = sp.SellingPointId, ShawarmaId = shawarma.ShawarmaId }; sb.PriceController.Add(pc); } else { pc.Price = price; pc.Comment = comment; } return(SaveIt(sb)); } }
public static bool CreateRecipe(string name, string[] ingradients, int[] weights, int cookingTime) { if (name == null) { throw new ArgumentNullException(nameof(name)); } if (ingradients == null || weights == null) { throw new ArgumentNullException(nameof(ingradients)); } if (ingradients.Length == 0 || weights.Length == 0 || ingradients.Length != weights.Length) { throw new ArgumentException(); } using (var sb = new ShawarmaBaseEntities()) { if (!sb.Shawarma.Any(recipe => recipe.ShawarmaName == name)) { return(false); } Shawarma shawarma = new Shawarma { ShawarmaName = name, CookingTime = cookingTime }; sb.Shawarma.Add(shawarma); if (sb.Ingradient.Count(ingr => ingradients.Contains(ingr.IngradientName)) != ingradients.Length) { return(false); } var ingradientsInBase = sb.Ingradient.Where(ingr => ingradients.Contains(ingr.IngradientName)); for (int i = 0; i < ingradients.Length; i++) { var sr = new ShawarmaRecipe { IngradientId = ingradientsInBase.First(ing => ing.IngradientName == ingradients[i]).IngradientId, ShawarmaId = shawarma.ShawarmaId, Weight = weights[i] }; sb.ShawarmaRecipe.Add(sr); } return(SaveIt(sb)); } }
public static bool AddSellingPoint(string title, string address, string category) { using (var sb = new ShawarmaBaseEntities()) { var pointCat = sb.SellingPointCategory.FirstOrDefault(selling => selling.SellingPointCategoryName == category); if (pointCat == null) { return(false); } SellingPoint point = new SellingPoint { ShawarmaTitle = title, Address = address, SellingPointCategoryId = pointCat.SellingPointCategoryId }; sb.SellingPoint.Add(point); return(SaveIt(sb)); } }
/* +Добавления продуктов на склад. +Продажа шаурмы (уменьшение количества продуктов на складе). +Создание нового рецепта шаурмы. +Установка новой цены. +Добавление новой торговой точки. * Добавление нового продавца-повара. * Составление отчета по продажам конкретной торговой точки за указанный временной интервал. * Составление отчета по каждому продавцу, заработная плата которого складывается из суммарного времени нахождения в торговой точке и времени, потраченного на приготовление шаурмы, за указанный временной интервал. */ public static bool AddIngredient(string name, string categoryName, int weight) { if (name == null) { throw new ArgumentNullException(nameof(name)); } if (categoryName == null) { throw new ArgumentNullException(nameof(categoryName)); } if (weight <= 0) { throw new ArgumentOutOfRangeException(nameof(weight)); } using (var sb = new ShawarmaBaseEntities()) { Ingradient ingradient = sb.Ingradient.FirstOrDefault(ingr => ingr.IngradientName == name); if (ingradient != null) { ingradient.TotalWeight += weight; } else { IngradientCategory category = sb.IngradientCategory.FirstOrDefault(ingr => ingr.CategoryName == categoryName); if (category == null) { return(false); } int categoryId = category.CategoryId; sb.Ingradient.Add(new Ingradient { CategoryId = categoryId, IngradientName = name, TotalWeight = weight }); } return(SaveIt(sb)); } }