Exemplo n.º 1
0
        public ActionResult ElaborateOrder(CheckoutViewModel model)
        {
            var order = orderFactory.CreateOrderFromCart(cart.GetItems(),
                                                         cart.Discount, model.SelectedPaymentType, model.Address);

            if (order != null)
            {
                ordersRepo.Insert(order);
                cart.ClearCart();
                return(View(order));
            }
            else
            {
                return(View("Error"));
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> PlaceOrderAsync()
        {
            user = await userManager.GetUserAsync(HttpContext.User);

            if (user.LocName == "" || user.LocName == null)
            {
                TempData["msg"] = "Add your address to place order.";
                return(RedirectToAction("ManageAddress", "Home"));
            }
            else
            {
                var sitems = shoppingCart.GetCart(user.Id).OrderBy(x => x.SellerId);

                if (sitems.Count() != 0)
                {
                    var OrderId = user.Id.ToString().Substring(0, 2)
                                  + Orders.GenerateOrderId().ToString();

                    Orders order = new Orders
                    {
                        OrderId    = OrderId,
                        AppUserId  = user.Email,
                        OrderTotal = sitems.Sum(x => x.ItemTotal),
                        OrderDate  = DateTime.Now
                    };
                    await context.Orders.AddAsync(order);

                    foreach (ShoppingCartItem item in sitems)
                    {
                        OrderDetails orderdetail = new OrderDetails
                        {
                            Order     = order,
                            OrderId   = order.OrderId,
                            SellerId  = item.SellerId,
                            ShopName  = item.ShopName,
                            ItemName  = item.ItemName,
                            ItemPrice = item.ItemPrice,
                            ItemCount = item.ItemCount,
                            ItemTotal = item.ItemTotal
                        };
                        await context.OrderDetails.AddAsync(orderdetail);
                    }
                    await context.SaveChangesAsync();

                    string CustomerInfo = "****Customer Info**** \n";

                    CustomerInfo += "Name: " + user.FirstName + " " + user.LastName;
                    CustomerInfo += "Address: " + user.AddrLine1 + ", " + user.AddrLine2 + "," + user.PinCode;
                    CustomerInfo += "Contact:" + user.PhoneNumber + "\n";

                    var Itemshop = context.Users.Include(u => u.UserLocation).
                                   Where(x => x.Id == (sitems.First().SellerId)).First();


                    string shopInfo = "****Shop Info**** : " + "\n";

                    List <string>   shops = sitems.Select(x => x.SellerId).Distinct().ToList();
                    ApplicationUser shop;
                    string          callBackUrl = this.Url.Action("Index", "Sell", null, this.Request.Scheme);//,, Request.Scheme);
                    foreach (string id in shops)
                    {
                        shop = await context.Users.FindAsync(id);

                        shopInfo += "  ShopName: " + shop.ShopName + "\n";
                        shopInfo += "ShopAddress: " + shop.AddrLine1 + ", " + shop.AddrLine2 + "," + shop.PinCode + "\n";
                        shopInfo += "ShopContact:" + shop.PhoneNumber + "\n";
                        shopInfo += "ShopContact:" + shop.PhoneNumber + "\n";

                        await emailsender.SendEmailAsync(shop.Email, $"New Order from {user.Email}", $"View order : {callBackUrl}");
                    }

                    string Data = shopInfo + CustomerInfo;

                    SendMsgAsync(Itemshop.UserLocation, Data);
                    shoppingCart.ClearCart(user.Id);

                    return(View());
                }
                else
                {
                    return(RedirectToAction("Index", "Home"));
                }
            }
        }