Пример #1
0
        public async Task <ActionResult> CreateOrder(ViewModels.Order data)
        {
            if (ModelState.IsValid)
            {
                //Register user here

                //
                var province = await db.Provinces.Where(x => x.IdProvince == data.Province).SingleOrDefaultAsync();

                var user = await db.Users.Where(x => x.UserName == User.Identity.Name).SingleOrDefaultAsync();

                var newOrder = new Models.Order()
                {
                    Id              = Guid.NewGuid().ToString(),
                    Title           = data.Title,
                    Descriptions    = data.Descriptions,
                    Priority        = data.Priority,
                    Province        = province,
                    Created         = DateTimeOffset.Now,
                    User            = user,
                    DeliveryAddress = data.DeliveryAddress,
                    Status          = Models.OrderStatus.Processing
                };
                db.Orders.Add(newOrder);
                var result = await db.SaveChangesAsync();

                if (result > 0)
                {
                    return(RedirectToAction("PreviewOrder", new { id = newOrder.Id }));
                }
            }
            return(View());
        }
Пример #2
0
        public async Task <ActionResult> SubmitData(ViewModels.Order data)
        {
            var order = await db.Orders.Where(x => x.Id == data.Id).SingleOrDefaultAsync();

            if (order != null)
            {
                order.Title           = data.Title;
                order.Priority        = data.Priority;
                order.Descriptions    = data.Descriptions;
                order.DeliveryAddress = data.DeliveryAddress;
                order.Status          = OrderStatus.Pending;
                db.Entry(order).State = EntityState.Modified;
                var result = await db.SaveChangesAsync();

                if (result > 0)
                {
                    return(RedirectToAction("Finish"));
                }
            }

            return(View());
        }
Пример #3
0
        public async Task <IActionResult> Report()
        {
            var reportViewModel = new ViewModels.Report();

            var orders = await _context.Orders
                         .Include(s => s.Items)
                         .AsNoTracking()
                         .ToListAsync();

            decimal orderPrice;
            decimal total          = 0;
            int     numberOfOrders = 1;

            foreach (var order in orders)
            {
                orderPrice  = order.Items.Where(x => x.OrderId == order.Id).Sum(x => x.Price * x.Amount);
                orderPrice -= order.Discount;
                total      += orderPrice;

                var orderViewModel = new ViewModels.Order()
                {
                    Number       = numberOfOrders++,
                    OrderCode    = order.Id,
                    DeliveryDate = order.DeliveryDate,
                    Discount     = order.Discount,
                    OrderPrice   = orderPrice
                };

                reportViewModel.Orders.Add(orderViewModel);
            }

            reportViewModel.Total          = total;
            reportViewModel.NumberOfOrders = --numberOfOrders;

            return(View(reportViewModel));
        }