private static void SetValue(Dish d, DishStatistic dishStatistic) { dishStatistic.Id = Guid.NewGuid().ToString(); dishStatistic.DishName = d.Name; dishStatistic.Count = 1; dishStatistic.DishCategoryName = d.DishCategory.Name; dishStatistic.IsReady = false; }
private void SetStatisticGarnish(Garnish g) { DishStatistic garnStatistic = new DishStatistic(); if (db.DishStatistics.Where(c => c.DishName == g.Name).FirstOrDefault() == null) { garnStatistic.Id = Guid.NewGuid().ToString(); garnStatistic.DishName = g.Name; garnStatistic.Count = 1; garnStatistic.DishCategoryName = "Гарнир"; garnStatistic.IsReady = false; db.DishStatistics.Add(garnStatistic); db.SaveChanges(); } else { var st = db.DishStatistics.Where(c => c.DishName == g.Name).FirstOrDefault(); db.Entry(st).State = EntityState.Modified; st.Count++; db.SaveChanges(); } }
public async Task <ActionResult> CreateJson(string[] IDs, string[] GarIds, string descr) { List <Dish> dishes = db.Dishes.Include(c => c.DishCategory).Where(c => IDs.Contains(c.Id)).ToList(); List <Garnish> garnishes = db.Garnishes.Where(c => GarIds.Contains(c.Id)).ToList(); List <ChoosenDish> choosenDishes = new List <ChoosenDish>(); for (var i = 0; i < dishes.Count;) { if (garnishes.Count != 0) { for (var a = 0; a < garnishes.Count; a++) { var d = dishes[i]; var g = garnishes[a]; ChoosenDish obj = CreateChoosenDish(d, g); DishStatistic dishStatistic = new DishStatistic(); if (db.DishStatistics.Where(c => c.DishName == d.Name).FirstOrDefault() == null) { SetValue(d, dishStatistic); db.DishStatistics.Add(dishStatistic); db.SaveChanges(); } else { var st = db.DishStatistics.Where(c => c.DishName == d.Name).FirstOrDefault(); db.Entry(st).State = EntityState.Modified; st.Count++; db.SaveChanges(); } if (d.HasGarnish) { SetStatisticGarnish(g); } db.SaveChanges(); choosenDishes.Add(obj); i++; } } else { var d = dishes[i]; ChoosenDish obj = CreateChoosenDishWithoutGarnish(d); DishStatistic dishStatistic = new DishStatistic(); if (db.DishStatistics.Where(c => c.DishName == d.Name).FirstOrDefault() == null) { SetValue(d, dishStatistic); db.DishStatistics.Add(dishStatistic); db.SaveChanges(); } else { var st = db.DishStatistics.Where(c => c.DishName == d.Name).FirstOrDefault(); db.Entry(st).State = EntityState.Modified; st.Count++; db.SaveChanges(); } db.SaveChanges(); choosenDishes.Add(obj); i++; } } var dateOfCreation = DateTime.UtcNow; string uid = User.Identity.GetUserId(); User user = db.Users.Include(c => c.Company).Where(c => c.Id == uid).FirstOrDefault(); user.Company.OrdersCount++; Random random = new Random(); int b = random.Next(); Order order = new Order() { Id = Guid.NewGuid().ToString("N"), ChoosenDishes = choosenDishes, DateOfCreation = dateOfCreation, UserId = uid, Description = descr, OrderSpecId = user.Company.Name.Substring(0, 2).ToUpper() + b.ToString(), Status = OrderStatus.Done }; db.Orders.Add(order); await db.SaveChangesAsync(); var redirectUrl = new UrlHelper(Request.RequestContext).Action("SucessOrder", "Orders", new { id = order.OrderSpecId }); return(Json(new { Url = redirectUrl })); }