public ActionResult OrderDetail(string token)
        {
            var orderID = Convert.ToInt32(Security.Decrypt(token, Identity.Customer.CustomerID));
            var model   = new GetCustomerOrdersResponse();

            ViewBag.IsSearch = true;

            model = ExigoDAL.GetCustomerOrders_SQL(new GetCustomerOrdersRequest
            {
                CustomerID          = Identity.Customer.CustomerID,
                Page                = 1,
                RowCount            = RowCount,
                LanguageID          = CurrentLanguage.LanguageID,
                IncludeOrderDetails = true,
                OrderID             = orderID,
                TotalRowCount       = 1
            });

            model.RowCount = RowCount;
            model.Page     = 1;

            model.OrderCount = 1;


            return(View("OrderList", model));
        }
        public ActionResult OpenOrdersList(int page = 1, int count = 0)
        {
            var model = new GetCustomerOrdersResponse();

            try
            {
                model = ExigoDAL.GetCustomerOrders_SQL(new GetCustomerOrdersRequest
                {
                    CustomerID          = Identity.Customer.CustomerID,
                    Page                = page,
                    RowCount            = RowCount,
                    LanguageID          = CurrentLanguage.LanguageID,
                    IncludeOrderDetails = true,
                    OrderStatuses       = new int[] {
                        OrderStatuses.Incomplete,
                        OrderStatuses.Pending,
                        OrderStatuses.CCDeclined,
                        OrderStatuses.ACHDeclined,
                        OrderStatuses.CCPending,
                        OrderStatuses.ACHPending,
                        OrderStatuses.PendingInventory,
                        OrderStatuses.Accepted
                    },
                    TotalRowCount = count
                });

                model.RowCount = RowCount;
                model.Page     = page;


                if (Request.IsAjaxRequest())
                {
                    model.Page = page++;
                    var orderNodes = this.RenderPartialViewToString("Partials/_OrderListRows", model);
                    var pagination = this.RenderPartialViewToString("Partials/_OrderListPagination", model);

                    return(new JsonNetResult(new
                    {
                        success = true,
                        orderNodes,
                        pagination
                    }));
                }
            }
            catch (Exception ex)
            {
                if (Request.IsAjaxRequest())
                {
                    return(new JsonNetResult(new
                    {
                        success = false,
                        message = ex.Message
                    }));
                }
            }
            return(View("OrderList", model));
        }
        public ActionResult OrderInvoice(string token)
        {
            var orderID = Convert.ToInt32(Security.Decrypt(token, Identity.Customer.CustomerID));

            var model = ExigoDAL.GetCustomerOrders_SQL(new GetCustomerOrdersRequest
            {
                CustomerID          = Identity.Customer.CustomerID,
                OrderID             = orderID,
                IncludeOrderDetails = true,
                LanguageID          = CurrentLanguage.LanguageID,
                IncludePayments     = true
            }).Orders.FirstOrDefault();

            return(View("OrderInvoice", model));
        }
        public JsonNetResult GetRecentOrders()
        {
            var customerID = Identity.Current.CustomerID;

            try
            {
                var orders = Cache.Get("Dashboard_OrdersCard_{0}".FormatWith(customerID),
                                       TimeSpan.FromMinutes(WidgetCacheTimeout),
                                       () =>
                                       ExigoDAL.GetCustomerOrders_SQL(new GetCustomerOrdersRequest
                {
                    CustomerID          = customerID,
                    IncludeOrderDetails = false,
                    OrderStatuses       = new int[] {
                        OrderStatuses.Accepted,
                        OrderStatuses.Printed,
                        OrderStatuses.Shipped
                    },
                    Page     = 1,
                    RowCount = 4
                }).Orders
                                       );



                var html = this.RenderPartialViewToString("Cards/RecentOrders", orders);

                return(new JsonNetResult(new
                {
                    success = true,
                    html
                }));
            }
            catch (Exception ex)
            {
                return(new JsonNetResult(new
                {
                    success = false,
                    message = ex.Message
                }));
            }
        }
        public ActionResult SearchOrdersList(int id)
        {
            ViewBag.IsSearch = true;
            var model = new GetCustomerOrdersResponse();

            model = ExigoDAL.GetCustomerOrders_SQL(new GetCustomerOrdersRequest
            {
                CustomerID          = Identity.Customer.CustomerID,
                Page                = 1,
                RowCount            = RowCount,
                LanguageID          = CurrentLanguage.LanguageID,
                IncludeOrderDetails = true,
                OrderID             = id,
                TotalRowCount       = 1
            });

            model.RowCount = RowCount;
            model.Page     = 1;

            model.OrderCount = model.Orders.Count();

            return(View("OrderList", model));
        }
        public ActionResult OrderList(int page = 1, int count = 0)
        {
            var model = new GetCustomerOrdersResponse();

            try
            {
                model = ExigoDAL.GetCustomerOrders_SQL(new GetCustomerOrdersRequest
                {
                    CustomerID          = Identity.Customer.CustomerID,
                    Page                = page,
                    RowCount            = RowCount,
                    LanguageID          = CurrentLanguage.LanguageID,
                    IncludeOrderDetails = true,
                    TotalRowCount       = count
                });

                // Check for brand new Orders in our NewOrders cookie
                #region New Order Logic
                // Create a cookie to store our newest Order ID to ensure it shows on the Order History page
                var orderIDCookie = Request.Cookies["NewOrder_{0}".FormatWith(Identity.Customer.CustomerID)];

                if (orderIDCookie != null && orderIDCookie.Value.CanBeParsedAs <int>())
                {
                    int newOrderID = Convert.ToInt32(orderIDCookie.Value);

                    if (model.Orders.Any(c => c.OrderID == newOrderID))
                    {
                        Response.Cookies["NewOrder_{0}".FormatWith(Identity.Customer.CustomerID)].Expires = DateTime.Now.AddDays(-1);
                    }
                    else
                    {
                        var newApiOrder = ExigoDAL.GetCustomerOrders(new GetCustomerOrdersRequest
                        {
                            CustomerID          = Identity.Customer.CustomerID,
                            IncludeOrderDetails = true,
                            LanguageID          = CurrentLanguage.LanguageID,
                            OrderID             = newOrderID,
                            TotalRowCount       = 1
                        }).FirstOrDefault();

                        if (newApiOrder != null)
                        {
                            model.Orders.Add(newApiOrder);
                            RowCount = RowCount + 1;
                        }
                    }
                }
                #endregion

                model.RowCount = RowCount;
                model.Page     = page;

                if (Request.IsAjaxRequest())
                {
                    model.Page = page++;
                    var orderNodes = this.RenderPartialViewToString("Partials/_OrderListRows", model);
                    var pagination = this.RenderPartialViewToString("Partials/_OrderListPagination", model);

                    return(new JsonNetResult(new
                    {
                        success = true,
                        orderNodes,
                        pagination
                    }));
                }
            }
            catch (Exception ex)
            {
                if (Request.IsAjaxRequest())
                {
                    return(new JsonNetResult(new
                    {
                        success = false,
                        message = ex.Message
                    }));
                }
            }

            return(View("OrderList", model));
        }