Пример #1
0
        public IActionResult Order()
        {
            if (HttpContext.Session.Get("User") == null)
            {
                return(RedirectToAction("Login", "Account"));
            }

            //Maträtter
            List <OrderViewModels> menyLista = new List <OrderViewModels>();

            var m = _context.Matratt.ToList();

            foreach (var i in m)
            {
                OrderViewModels matratt = new OrderViewModels();
                List <Produkt>  inLista = new List <Produkt>();
                matratt.Matratt = i;

                var mp = _context.MatrattProdukt.Where(z => z.MatrattId == i.MatrattId).Include(k => k.Produkt).ToList();

                foreach (var a in mp)
                {
                    var ing = new Produkt();
                    ing.ProduktId   = a.ProduktId;
                    ing.ProduktNamn = a.Produkt.ProduktNamn;
                    inLista.Add(ing);
                }

                matratt.ProduktLista = inLista;
                menyLista.Add(matratt);
            }
            return(View(menyLista));
        }
Пример #2
0
        public void AddNewOrder(OrderViewModels order)
        {
            using (ShopDBEntities db = new ShopDBEntities())
            {
                //string[] formats = { "dd/MM/yyyy" };
                //DateTime oDate = new DateTime();//
                //oDate = DateTime.Parse(order.OrderDate).Date;    //.Pars e(order.OrderDate);

                Order model = new Order();
                model.CustomerId  = order.CustomerId;
                model.OrderDate   = order.OrderDate;
                model.OrderNumber = order.OrderNumber;
                model.TotalAmount = order.TotalAmount;

                db.Order.Add(model);
                db.SaveChanges();

                foreach (var item in order.ListOrderItem)
                {
                    OrderItem modelItem = new OrderItem();
                    modelItem.OrderId   = model.Id;
                    modelItem.ProductId = item.ProductId;
                    modelItem.Quantity  = item.Quantity;
                    modelItem.UnitPrice = item.UnitPrice;

                    db.OrderItem.Add(modelItem);
                    db.SaveChanges();
                }
            }
        }
Пример #3
0
 public IActionResult Post([FromBody] OrderViewModels model)
 {
     try
     {
         if (ModelState.IsValid)
         {
             var newOrder = _mapper.Map <OrderViewModels, Order>(model);
             if (newOrder.OrderDate == DateTime.MinValue)
             {
                 newOrder.OrderDate = DateTime.Now;
             }
             _respository.AddEntity(newOrder);
             if (_respository.SaveAll())
             {
                 return(Created($"api/Orders/{newOrder.Id}", _mapper.Map <Order, OrderViewModels>(newOrder)));
             }
             else
             {
                 return(BadRequest($"Failed to save new order"));
             }
         }
         else
         {
             return(BadRequest(ModelState));
         }
     }
     catch (Exception er)
     {
         _logger.LogError($" Failed to save a new order {er}");
         return(BadRequest());
     }
 }
Пример #4
0
        public IActionResult Post([FromBody] OrderViewModels model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var newOrder = _mapper.Map <OrderViewModels, Order>(model);

                    if (newOrder.OrderDate == DateTime.MinValue)
                    {
                        newOrder.OrderDate = DateTime.Now;
                    }
                    _repository.AddEntity(newOrder);

                    if (_repository.SaveAll())
                    {
                        return(Created($"/api/orders/{newOrder.Id}", _mapper.Map <Order, OrderViewModels>(newOrder)));
                    }
                }
                else
                {
                    return(BadRequest(ModelState));
                }
            }

            catch (Exception ex)
            {
                _logger.LogError($"Falha para a salvar uma nova order: {ex}");
            }

            return(BadRequest("Falha para salvar nova ordem"));
        }
Пример #5
0
        // GET: Orders/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            OrderModels orderModels = db.OrderModels.Find(id);

            if (orderModels == null)
            {
                return(HttpNotFound());
            }

            string user_name = User.Identity.GetUserName();

            if (orderModels.Email != user_name)
            {
                return(HttpNotFound());
            }

            var resultProductsJoin = db.ProductOrderModels.Where(s => s.CartId == orderModels.Id).ToList();

            var resultProducts = db.ProductsModels.Join(db.ProductOrderModels, s => s.Id, sa => sa.ProductId, (s, sa) => new { products = s, productsJoin = sa }).Where(b => b.productsJoin.CartId == orderModels.Id).Select(ssa => ssa.products);

            var model = new OrderViewModels()
            {
                Order = orderModels,

                ProductsJoin = resultProductsJoin,

                Products = resultProducts
            };

            return(View(model));
        }
        public ActionResult Index()
        {
            string          strCategories = svc.GetCategories();
            OrderViewModels model         = new OrderViewModels();

            model.Categories = JsonConvert.DeserializeObject <List <Category> >(strCategories);
            return(View(model));
        }
        public ActionResult Index([Bind(Include = "CustomerID, EmployeeID, ProductID, UnitPice, Quantity ")] OrderViewModels order)
        {
            ProductsService.Order oOrder = new ProductsService.Order()
            {
                ProductID = order.ProductID, UnitPrice = order.UnitPrice, Quantity = order.Quantity
            };
            string response = svc.SaveOrder(oOrder);

            return(View());
        }
Пример #8
0
        // GET: Orders
        public ActionResult Index(string userID, string status)
        {
            OrderViewModels model = new OrderViewModels();

            model.UserID = userID;
            model.Status = status;

            model.Orders = OrdersService.Instance.SearchOrders(userID, status);
            var totalRecords = OrdersService.Instance.SearchOrdersCount(userID, status);

            return(View(model));
        }
Пример #9
0
        public void createOrder(OrderViewModels order)
        {
            using (ShopDBEntities db = new ShopDBEntities())
            {
                Order model = new Order();
                model.Id          = order.Id;
                model.OrderDate   = order.OrderDate;
                model.OrderNumber = order.OrderNumber;
                model.TotalAmount = order.TotalAmount;
                //model.


                db.Order.Add(model);
                db.SaveChanges();
            }
        }
Пример #10
0
        public List <OrderViewModels> GetAllOrder()
        {
            using (ShopDBEntities db = new ShopDBEntities())
            {
                var list = db.Order.ToList();
                List <OrderViewModels> listVM = new List <OrderViewModels>();

                foreach (var item in list)
                {
                    OrderViewModels viewModel = new OrderViewModels();
                    viewModel.Id           = item.Id;
                    viewModel.CustomerName = item.Customer.FirstName + " " + item.Customer.LastName;
                    viewModel.OrderDate    = item.OrderDate;
                    viewModel.OrderNumber  = item.OrderNumber;
                    viewModel.TotalAmount  = item.TotalAmount;
                    listVM.Add(viewModel);
                }
                return(listVM);
            }
        }
Пример #11
0
        // GET: Orders/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            int                 idx         = id ?? 0;
            string              ApiEndPoint = ApiUrl + "api/OrderApi/Get/" + idx;
            HttpClient          client      = new HttpClient();
            HttpResponseMessage response    = client.GetAsync(ApiEndPoint).Result;

            string          result  = response.Content.ReadAsStringAsync().Result.ToString();
            OrderViewModels orderVM = JsonConvert.DeserializeObject <OrderViewModels>(result);


            if (orderVM == null)
            {
                return(HttpNotFound());
            }
            return(View(orderVM));
        }
Пример #12
0
        //searching
        public List <OrderViewModels> SearchBy(string orderNumber, string date, string CustId)
        {
            using (ShopDBEntities db = new ShopDBEntities())
            {
                var list = db.Order.ToList();
                List <OrderViewModels> listVM = new List <OrderViewModels>();

                DateTime tanggal = new DateTime();

                if (!string.IsNullOrEmpty(date))
                {
                    tanggal = DateTime.Parse(date.Replace("-", "/")).Date;
                }

                int idCust = 0;

                if (!string.IsNullOrEmpty(CustId))
                {
                    idCust = int.Parse(CustId);
                }

                foreach (var item in list)
                {
                    if (((item.OrderDate == tanggal) || string.IsNullOrEmpty(date) || string.IsNullOrWhiteSpace(date)) &&
                        (item.OrderNumber.Contains(orderNumber) || string.IsNullOrEmpty(orderNumber) || string.IsNullOrWhiteSpace(orderNumber)) &&
                        ((item.CustomerId == idCust && idCust != 0) || string.IsNullOrEmpty(CustId) || string.IsNullOrWhiteSpace(CustId)))
                    {
                        OrderViewModels viewModel = new OrderViewModels();
                        viewModel.Id           = item.Id;
                        viewModel.CustomerName = item.Customer.FirstName + " " + item.Customer.LastName;
                        viewModel.OrderDate    = item.OrderDate;
                        viewModel.OrderNumber  = item.OrderNumber;
                        viewModel.TotalAmount  = item.TotalAmount;
                        listVM.Add(viewModel);
                    }
                }

                return(listVM);
            }
        }
Пример #13
0
        public OrderViewModels GetDetailOrderById(int id)
        {
            using (ShopDBEntities db = new ShopDBEntities())
            {
                OrderViewModels model = new OrderViewModels();
                model = (from a in db.Order
                         join b in db.Customer on a.CustomerId equals b.Id
                         where a.Id == id
                         select new OrderViewModels
                {
                    Id = a.Id,
                    OrderDate = a.OrderDate,
                    OrderNumber = a.OrderNumber,
                    CustomerName = b.FirstName + " " + b.LastName,
                    CustomerId = b.Id,
                    TotalAmount = a.TotalAmount
                }
                         ).Single();

                model.ListOrderItem = (from a in db.Order
                                       join b in db.OrderItem on a.Id equals b.OrderId
                                       join c in db.Product on b.ProductId equals c.Id
                                       where a.Id == id
                                       select new OrderItemViewModels
                {
                    Id = b.Id,
                    OrderId = b.OrderId,
                    OrderNumber = a.OrderNumber,
                    ProductId = c.Id,
                    ProductName = c.ProductName,
                    UnitPrice = b.UnitPrice,
                    Quantity = b.Quantity,
                    TotalAmount = b.UnitPrice * b.Quantity
                }
                                       ).ToList();
                return(model);
            }
        }
Пример #14
0
        private OrderViewModels OrderViewModels(Cart shoppingCart)
        {
            var discount = 0;
            var user     = _userManager.FindById(User.Identity.GetUserId <int>());

            if (user != null)
            {
                discount = user.Rabat;
            }
            var     productList = new List <OrderItem>();
            decimal totalValue  = 0;
            decimal weight      = 0;

            foreach (var item in shoppingCart.Lines)
            {
                var product = _appRepository.GetSingle <Products>(x => x.ProductId == item.Id);
                if (product == null)
                {
                    continue;
                }
                var priceFloored = CalcPrice(product.Price, product.Promotion);

                productList.Add(new OrderItem
                {
                    Name  = product.Name,
                    Price =
                        priceFloored.ToString("c"),
                    Quantity   = item.Quantity,
                    TotalValue =
                        (priceFloored * item.Quantity).ToString("c"),
                    Packing = product.Packing
                });
                weight     += (product.Weight ?? 0) * item.Quantity;
                totalValue += (priceFloored * item.Quantity);
            }
            var orderShippingRadios = _appRepository.GetAll <ShippingType>(j => j.Active && j.MaxWeight > weight).Select(x => new OrderViewRadioOption
            {
                Id          = x.ShippingId,
                Price       = totalValue > 250?0:x.ShippingPrice,
                Text        = x.ShippingName,
                Description = x.ShippingDescription
            }).ToList();
            var orderPaymentRadios = _appRepository.GetAll <PaymentType>(j => j.Active).Select(x => new OrderViewRadioOption
            {
                Id          = x.PaymentId,
                Price       = totalValue > 250 ? 0 : x.PaymentPrice,
                Text        = x.PaymentName,
                Description = x.PaymentDescription
            }).ToList();

            var model = new OrderViewModels
            {
                OrderProductList      = productList,
                TotalValue            = totalValue,
                Discount              = discount,
                DiscountValue         = Convert.ToDecimal((totalValue * discount) / 100).ToString("c").Replace(",", "."),
                OrderViewPaymentModel = new OrderViewRadioModel
                {
                    Option         = orderPaymentRadios,
                    SelectedOption = shoppingCart.PaymentId.ToString()
                },
                OrderViewShippingModel = new OrderViewRadioModel
                {
                    Option         = orderShippingRadios,
                    SelectedOption = shoppingCart.ShippingId.ToString()
                }
            };

            return(model);
        }
        //
        // GET: /Order/
        public ActionResult Index()
        {
            OrderViewModels model = new OrderViewModels();

            return(View(model));
        }
Пример #16
0
        public async Task <IActionResult> AddToCart(OrderViewModels model)
        {
            if (User.Identity.IsAuthenticated == true)
            {
                var user = await _userManager.GetUserAsync(HttpContext.User);

                // User logined
                var cart = _context.Carts
                           .SingleOrDefault(x => string.IsNullOrEmpty(x.Status) &&
                                            x.UserId == user.Id);

                if (cart == null)
                {
                    // Create cart
                    cart = new Cart
                    {
                        CreatedDate         = DateTime.Now,
                        CustomerName        = user.UserName,
                        CustomerEmail       = user.Email,
                        UserId              = user.Id,
                        Total               = 0,
                        Status              = null,
                        CustomerPhoneNumber = user.PhoneNumber
                    };
                    _context.Entry(cart).State = Microsoft.EntityFrameworkCore.EntityState.Added;
                }
                // Create order
                var order = new Order
                {
                    UserId    = user.Id,
                    ProductId = model.Id,
                    CartId    = cart.Id,
                    Quantity  = model.Quantity,
                    Buy       = false
                };
                _context.Entry(order).State = Microsoft.EntityFrameworkCore.EntityState.Added;

                await _context.SaveChangesAsync();

                var models = _context.Carts
                             .Include(x => x.Orders)
                             .ThenInclude(x => x.Product)
                             .SingleOrDefault(x => string.IsNullOrEmpty(x.Status) &&
                                              x.UserId == user.Id);
                if (models != null)
                {
                    var cartViewModels = new CartViewModels
                    {
                        Id         = models.Id,
                        ItemsCount = models.Orders.Count,
                        Total      = models.Orders.Sum(x => x.GetTotal()),
                        Status     = null
                    };

                    return(Json(new
                    {
                        success = 1,
                        itemCount = cartViewModels.ItemsCount,
                        total = cartViewModels.TotalCurency()
                    }));
                }
            }
            else
            {
                if (HttpContext.Session.GetString("SESSION_CART") == null || string.IsNullOrEmpty(HttpContext.Session.GetString("SESSION_CART")) == true)
                {
                    // Create cart
                    var cart = new Cart
                    {
                        CreatedDate = DateTime.Now,
                        Total       = 0,
                        Status      = null,
                    };
                    // Create order
                    var order = new Order
                    {
                        Id        = 1,
                        ProductId = model.Id,
                        CartId    = cart.Id,
                        Quantity  = model.Quantity,
                        Buy       = false
                    };
                    cart.Orders.Add(order);
                    HttpContext.Session.SetString("SESSION_CART", JsonConvert.SerializeObject(cart));
                }
                else
                {
                    var cart = JsonConvert.DeserializeObject <Cart>(HttpContext.Session.GetString("SESSION_CART"));
                    // Create order
                    var order = new Order
                    {
                        Id        = cart.Orders.Count() + 1,
                        ProductId = model.Id,
                        CartId    = cart.Id,
                        Quantity  = model.Quantity,
                        Buy       = false
                    };
                    cart.Orders.Add(order);
                    HttpContext.Session.SetString("SESSION_CART", JsonConvert.SerializeObject(cart));
                }


                var models = JsonConvert.DeserializeObject <Cart>(HttpContext.Session.GetString("SESSION_CART"));
                foreach (var item in models.Orders)
                {
                    var p = _context.Products.SingleOrDefault(x => x.Id == item.ProductId);
                    if (p != null)
                    {
                        item.Product = p;
                    }
                }
                if (models != null)
                {
                    var cartViewModels = new CartViewModels
                    {
                        Id         = models.Id,
                        ItemsCount = models.Orders.Count,
                        Total      = models.Orders.Sum(x => x.GetTotal()),
                        Status     = null
                    };

                    return(Json(new
                    {
                        success = 1,
                        itemCount = cartViewModels.ItemsCount,
                        total = cartViewModels.TotalCurency()
                    }));
                }
            }


            return(Json(new { success = 0, message = "Error" }));
        }
Пример #17
0
        public ActionResult Create([Bind(Include = "Id,OrderId,Firstname,Lastname,Address,PostalCode,City,PhoneNumber")] OrderDetail orderDetail)
        {
            if (ModelState.IsValid)
            {
                if (Session[User.Identity.Name] != null)
                {
                    OrderDetailViewModels orderDetailViews = new OrderDetailViewModels();
                    Sessions temp = (Sessions)Session[User.Identity.Name];

                    //Generera vår unika id, inte bästa sättet men orkade ej byta alla int till sträng när jag såg guid generator
                    int     Id = new Random().Next();
                    Product product;

                    orderDetail.Id      = Id; //vet ej varför men blir error utan? :S
                    orderDetail.OrderId = Id;

                    //jobbigt men vi måste göra en kopia av vyn för kvitto som innehåller applista
                    orderDetailViews.Id          = Id;
                    orderDetailViews.OrderId     = Id;
                    orderDetailViews.Firstname   = orderDetail.Firstname;
                    orderDetailViews.Lastname    = orderDetail.Lastname;
                    orderDetailViews.Address     = orderDetail.Address;
                    orderDetailViews.PostalCode  = orderDetail.PostalCode;
                    orderDetailViews.City        = orderDetail.City;
                    orderDetailViews.PhoneNumber = orderDetail.PhoneNumber;
                    orderDetailViews.Apps        = new List <Product>();

                    //Vi måste spara varje app i databasen, går ju inte att spara lista i ett fält i databasen :O
                    OrderItem orderItem = new OrderItem
                    {
                        OrderId = Id
                    };

                    //Ny order, här sparar vi info om själva ordern, datum, totalpris m.m, denna behövs inte heller bara om vi skulle cacha allt i en lista som går igenom hela programmet
                    OrderViewModels orderViews = new OrderViewModels
                    {
                        OrderTotalPrice = temp.TotalPrice,
                        UserIdentity    = User.Identity.Name,
                        OrderId         = Id,
                        Apps            = new List <int>()
                    };

                    //Samma som uppe fast för databasen utan applistan
                    Order order = new Order
                    {
                        OrderTotalPrice = temp.TotalPrice,
                        UserIdentity    = User.Identity.Name,
                        OrderId         = Id,
                    };

                    //Loopar igenom apparna vi har från session -> appkorg
                    foreach (var item in temp.Apps.Keys.ToList())
                    {
                        //sparar appen i ett temp-objekt
                        product = db.Products.Find(item);

                        //extra kontroll
                        if (product != null)
                        {
                            //spara appen så vi kan visa kvittot med appen sen
                            if (!orderDetailViews.Apps.Contains(product))
                            {
                                orderDetailViews.Apps.Add(product);
                            }

                            orderItem.AppId = product.Id;

                            //Sparar appen som tillhör denna orderId i databasen
                            db.OrderItems.Add(orderItem);

                            //vi måste spara varje gång i loopen annars ersätts ju objektet varje gång utan att det sparas :P
                            db.SaveChanges();
                        }
                    }

                    db.Orders.Add(order);


                    /* vi måste ju rensa varukorgen också :o*/
                    temp.Apps.Clear();
                    temp.TotalPrice = 0;

                    //Ersätter gamla med nya uppdaterade session
                    Session.Add(User.Identity.Name, temp);

                    db.OrderDetails.Add(orderDetail);
                    db.SaveChanges();

                    return(View("Checkout", orderDetailViews));
                }
            }

            return(View(orderDetail));
        }
Пример #18
0
        public async Task <IActionResult> Index(int productPage = 1, string searchName = null, string searchEmail = null, string searchPhone = null, string searchDate = null)
        {
            System.Security.Claims.ClaimsPrincipal currentUser = this.User;
            var claimsIdentity = (ClaimsIdentity)this.User.Identity;
            var claim          = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier);

            OrderViewModels orderVM = new OrderViewModels()
            {
                Orders = new List <Models.Orders>()
            };



            StringBuilder param = new StringBuilder();

            param.Append("/Admin/Orders?productPage=:");
            param.Append("&searchName=");

            if (searchName != null)
            {
                param.Append(searchName);
            }
            param.Append("&searchEmail=");
            if (searchEmail != null)
            {
                param.Append(searchEmail);
            }
            param.Append("&searchPhone=");
            if (searchPhone != null)
            {
                param.Append(searchPhone);
            }
            param.Append("&searchDate=");
            if (searchDate != null)
            {
                param.Append(searchDate);
            }


            orderVM.Orders = _db.Orders.Include(a => a.Customers).Include(a => a.SalerPerson).ToList();



            if (searchName != null)
            {
                orderVM.Orders = orderVM.Orders.Where(a => a.Customers.CustomerName.ToLower().Contains(searchName.ToLower())).ToList();
            }
            if (searchEmail != null)
            {
                orderVM.Orders = orderVM.Orders.Where(a => a.Customers.Email.ToLower().Contains(searchEmail.ToLower())).ToList();
            }
            if (searchPhone != null)
            {
                orderVM.Orders = orderVM.Orders.Where(a => a.Customers.Phone.ToLower().Contains(searchPhone.ToLower())).ToList();
            }
            if (searchDate != null)
            {
                try
                {
                    DateTime appDate = Convert.ToDateTime(searchDate);
                    orderVM.Orders = orderVM.Orders.Where(a => a.Date.ToShortDateString().Equals(appDate.ToShortDateString())).ToList();
                }
                catch (Exception ex)
                {
                }
            }


            var count = orderVM.Orders.Count;

            orderVM.Orders = orderVM.Orders.OrderBy(p => p.Date)
                             .Skip((productPage - 1) * PageSize)
                             .Take(PageSize).ToList();


            orderVM.PagingInfo = new PagingInfo
            {
                CurrentPage  = productPage,
                ItemsPerPage = PageSize,
                TotalItems   = count,
                urlParam     = param.ToString()
            };


            return(View(orderVM));
        }