示例#1
0
        private ChoosenDish CreateChoosenDishWithoutGarnish(Dish d)
        {
            var obj = new ChoosenDish();

            obj.Id               = Guid.NewGuid().ToString();
            obj.DishName         = d.Name;
            obj.DishCategoryName = d.DishCategory.Name;
            obj.Kilocalories     = d.Kilocalories;
            obj.ImagePath        = d.ImagePath;
            obj.Fats             = d.Fats;
            obj.Weight           = d.Weight;
            obj.Carbonhydrates   = d.Carbonhydrates;
            obj.GarinshName      = null;
            db.ChoosenDishes.Add(obj);
            return(obj);
        }
示例#2
0
        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 }));
        }