public async Task <JsonResult> Get(int pageIndex,
                                           int pageSize,
                                           string pageOrder,
                                           string userName,
                                           int?orderID,
                                           int?fromPrice,
                                           int?toPrice,
                                           string fromDate,
                                           string toDate,
                                           sbyte cartStatus,
                                           SendMethodType?sendMethodType,
                                           PaymentMethodType?paymentMethodType)
        {
            DateTime?sDate = null,
                    eDate  = null;

            CartStatus?crtStatus = null;

            if (!String.IsNullOrWhiteSpace(fromDate))
            {
                sDate = Utilities.ToEnglishDate(fromDate).Date;
            }

            if (!String.IsNullOrWhiteSpace(toDate))
            {
                eDate = Utilities.ToEnglishDate(toDate).Date;
            }

            if (cartStatus != -1)
            {
                crtStatus = (CartStatus)cartStatus;
            }

            var list = Carts.Get(pageIndex,
                                 pageSize,
                                 pageOrder,
                                 orderID,
                                 fromPrice,
                                 toPrice,
                                 sDate,
                                 eDate,
                                 crtStatus,
                                 null,
                                 sendMethodType,
                                 paymentMethodType,
                                 "",
                                 OrderStatus.Unsuccessful);

            foreach (var item in list)
            {
                var user = (await UserManager.FindByIdAsync(item.UserID));
                if (user != null)
                {
                    item.UserName  = user.UserName;
                    item.Firstname = user.Firstname;
                    item.Lastname  = user.Lastname;
                }
            }

            int total = Carts.Count(orderID,
                                    fromPrice,
                                    toPrice,
                                    sDate,
                                    eDate,
                                    crtStatus,
                                    null,
                                    sendMethodType,
                                    paymentMethodType,
                                    "",
                                    OrderStatus.Unsuccessful);

            int totalPage = (int)Math.Ceiling((decimal)total / pageSize);

            if (pageSize > total)
            {
                pageSize = total;
            }

            if (list.Count < pageSize)
            {
                pageSize = list.Count;
            }

            JsonResult result = new JsonResult()
            {
                Data = new
                {
                    TotalPages = totalPage,
                    PageIndex  = pageIndex,
                    PageSize   = pageSize,
                    Rows       = list
                },
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            };

            return(result);
        }
示例#2
0
        public async Task <ActionResult> ExportToExcel(string userName,
                                                       int?orderID,
                                                       int?fromPrice,
                                                       int?toPrice,
                                                       string fromDate,
                                                       string toDate,
                                                       sbyte cartStatus,
                                                       sbyte sendStatus,
                                                       SendMethodType?sendMethodType,
                                                       PaymentMethodType?paymentMethodType,
                                                       string saleReferenceID)
        {
            DateTime?sDate = null,
                    eDate  = null;

            SendStatus?sndStatus = null;
            CartStatus?crtStatus = null;

            if (!String.IsNullOrWhiteSpace(fromDate))
            {
                sDate = Utilities.ToEnglishDate(fromDate).Date;
            }

            if (!String.IsNullOrWhiteSpace(toDate))
            {
                eDate = Utilities.ToEnglishDate(toDate).Date;
            }

            if (sendStatus != -1)
            {
                sndStatus = (SendStatus)sendStatus;
            }

            if (cartStatus != -1)
            {
                crtStatus = (CartStatus)cartStatus;
            }


            var dt = new System.Data.DataTable("Orders");

            var orders = Carts.Get(0,
                                   -1,
                                   "ID",
                                   orderID,
                                   fromPrice,
                                   toPrice,
                                   sDate,
                                   eDate,
                                   crtStatus,
                                   sndStatus,
                                   sendMethodType,
                                   paymentMethodType,
                                   saleReferenceID,
                                   OrderStatus.All);

            dt.Columns.Add("کد سفارش", typeof(int));
            dt.Columns.Add("کد پیگیری", typeof(string));
            dt.Columns.Add("نام", typeof(string));
            dt.Columns.Add("نام خانوادگی", typeof(string));
            dt.Columns.Add("نام کاربری", typeof(string));
            dt.Columns.Add("روش ارسال", typeof(string));
            dt.Columns.Add("مبلغ کل", typeof(long));
            dt.Columns.Add("مبلغ قابل پرداخت", typeof(long));
            dt.Columns.Add("تاریخ سفارش", typeof(string));
            dt.Columns.Add("وضعیت سفارش", typeof(string));
            dt.Columns.Add("وضعیت ارسال", typeof(string));

            foreach (var item in orders)
            {
                var user = (await UserManager.FindByIdAsync(item.UserID));
                if (user != null)
                {
                    item.UserName  = user.UserName;
                    item.Firstname = user.Firstname;
                    item.Lastname  = user.Lastname;
                }

                dt.Rows.Add(item.ID,
                            item.SaleReferenceID,
                            item.Firstname,
                            item.Lastname,
                            item.UserName,
                            item.SendMethodType.GetEnumDisplay(),
                            item.Total,
                            item.ToPay,
                            Utilities.ToPersianDate(item.DateTime.Value),
                            item.CartStatus.GetEnumDisplay(),
                            item.SendStatus.GetEnumDisplay()
                            );
            }

            var grid = new GridView();

            grid.Font.Name  = "tahoma";
            grid.Font.Size  = new FontUnit(11, UnitType.Pixel);
            grid.DataSource = dt;
            grid.DataBind();

            Response.ClearContent();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", "attachment; filename=Prices.xls");
            Response.ContentType = "application/ms-excel";

            Response.Charset = "";
            StringWriter   sw  = new StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);

            grid.RenderControl(htw);

            Response.Output.Write(sw.ToString());
            Response.Flush();
            Response.End();

            return(View("MyView"));
        }