コード例 #1
0
        public IActionResult OrderNow(string UserPhone = "", string Password = "")
        {
            if (UserPhone == "" || Password == "")
            {
                return(RedirectToAction(nameof(ClientLogin)));
            }

            if (IsClient(UserPhone, Password))
            {
                var Client         = _context.Members.FirstOrDefault(c => c.Phone == UserPhone);
                var CartItemsTotal = _context.Carts.Where(c => c.MemberId == Client.Id).Select(c => c.Value).Sum();
                var model          = new OrderNowViewModel()
                {
                    Total     = CartItemsTotal,
                    UserPhone = Client.Phone,
                    Cities    = _context.Cities.ToList()
                };
                return(View(model));
            }

            return(RedirectToAction(nameof(ClientLogin)));
        }
コード例 #2
0
        public IActionResult OrderConfirm(OrderNowViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (model.LoginedUserPhone == "" || model.Password == "")
                {
                    return(RedirectToAction(nameof(ClientLogin)));
                }

                if (IsClient(model.LoginedUserPhone, model.Password))
                {
                    var Client    = _context.Members.FirstOrDefault(c => c.Phone == model.LoginedUserPhone);
                    var CartItems = _context.Carts.Where(c => c.MemberId == Client.Id).ToList();
                    var city      = _context.Cities.FirstOrDefault(c => c.Id == model.CityId);
                    if (CartItems.Count == 0)
                    {
                        return(RedirectToAction(nameof(Index)));
                    }

                    if (city == null)
                    {
                        return(View(model));
                    }
                    var TotalAmount             = CartItems.Select(c => c.Value).Sum();
                    var TotalAmountWithDelivery = TotalAmount + city.DeliveryService;
                    var date = DateTime.UtcNow.ToString(new CultureInfo("ar-EG"));

                    var order = new Order()
                    {
                        Name            = model.UserName,
                        Date            = date,
                        Address         = model.Address,
                        Total           = TotalAmountWithDelivery,
                        Notes           = model.Notes,
                        Phone           = model.UserPhone,
                        LoginedPhone    = model.LoginedUserPhone,
                        State           = "waiting",
                        DeliveryService = city.DeliveryService,
                        CityId          = city.Id,
                        DeliveryDate    = model.DeliveryDate
                    };

                    _context.Orders.Add(order);
                    _context.SaveChanges();

                    var ThisOrder = _context.Orders.ToList().LastOrDefault(o => o.LoginedPhone == model.LoginedUserPhone);
                    if (ThisOrder != null)
                    {
                        var OrderDetails = from c in CartItems
                                           select new OrderDetails()
                        {
                            Value    = c.Value,
                            Quantity = c.Quantity,
                            Price    = c.Price,
                            UnitId   = c.UnitId,
                            ItemId   = c.ItemId,
                            MemberId = c.MemberId,
                            OrderId  = ThisOrder.Id
                        };
                        _context.OrderDetails.AddRange(OrderDetails);
                        _context.SaveChanges();
                        _context.Carts.RemoveRange(CartItems);
                        _context.SaveChanges();
                        return(RedirectToAction(nameof(Index)));
                    }
                }
            }

            return(View(model));
        }