public ActionResult TrackingFinance(int?page, int?Packageid, string FillterName, string Datetime)
        {
            int pageNum = (page ?? 1);
            TrackingFinanceViewModel model = new TrackingFinanceViewModel();
            IQueryable <UserPackage> tmp   = cms_db.GetlstUserPackageIquery().Where(s => s.StateId == (int)EnumCore.StateType.cho_phep);

            if (!String.IsNullOrEmpty(FillterName))
            {
                tmp = tmp.Where(s => s.UpgradeUserName == FillterName);
                model.FillterName = FillterName;
            }
            if (Packageid.HasValue)
            {
                tmp             = tmp.Where(s => s.PackageId == Packageid);
                model.Packageid = Packageid.Value;
            }
            if (!String.IsNullOrEmpty(Datetime))
            {
                model.Datetime = Datetime;
                model.StartDT  = this.SpritDateTime(model.Datetime)[0];
                model.EndDT    = this.SpritDateTime(model.Datetime)[1];
                tmp            = tmp.Where(s => s.CrtdDT > model.StartDT && s.CrtdDT < model.EndDT);
            }

            model.lstMainUserPackage = tmp.OrderByDescending(c => c.CrtdDT).ToPagedList(pageNum, (int)EnumCore.BackendConst.page_size);
            if (tmp.Count() < (int)EnumCore.BackendConst.page_size)
            {
                pageNum = 1;
            }
            model.pageNum    = pageNum;
            model.lstPackage = new SelectList(cms_db.GetObjSelectListPackage(), "value", "text");
            return(View(model));
        }
        public FileResult Export(int?page, int?Packageid, string FillterName, string Datetime)
        {
            try
            {
                int pageNum = (page ?? 1);
                TrackingFinanceViewModel model = new TrackingFinanceViewModel();
                IQueryable <UserPackage> tmp   = cms_db.GetlstUserPackageIquery().Where(s => s.StateId == (int)EnumCore.StateType.cho_phep);
                if (!String.IsNullOrEmpty(FillterName))
                {
                    tmp = tmp.Where(s => s.UpgradeUserName == FillterName);
                }
                if (Packageid.HasValue)
                {
                    if (Packageid.Value > 0)
                    {
                        tmp = tmp.Where(s => s.PackageId == Packageid);
                    }
                }
                if (!String.IsNullOrEmpty(Datetime))
                {
                    model.Datetime = Datetime;
                    model.StartDT  = this.SpritDateTime(model.Datetime)[0];
                    model.EndDT    = this.SpritDateTime(model.Datetime)[1];
                    tmp            = tmp.Where(s => s.CrtdDT > model.StartDT && s.CrtdDT < model.EndDT);
                }
                List <UserPackage> dataexport = new List <UserPackage>();
                dataexport = tmp.OrderByDescending(c => c.CrtdDT).Skip((pageNum - 1) * 50).Take(50).ToList();
                DataTable dt = new DataTable("Grid");
                dt.Columns.AddRange(new DataColumn[5] {
                    new DataColumn("Tên"),
                    new DataColumn("Ngày nâng cấp"),
                    new DataColumn("Gói nâng cấp"),
                    new DataColumn("Tiền"),
                    new DataColumn("Lịch sử")
                });

                double sum = 0;
                foreach (UserPackage item in dataexport)
                {
                    dt.Rows.Add(item.UpgradeUserName, item.CrtdDT, item.PackageName, item.Price, item.OldPackageName + "->" + item.PackageName);
                    sum = sum + item.Price.Value;
                }
                dt.Rows.Add("", "", "Tổng tiền", sum, "");


                using (XLWorkbook wb = new XLWorkbook())
                {
                    wb.Worksheets.Add(dt);
                    using (MemoryStream stream = new MemoryStream())
                    {
                        wb.SaveAs(stream);
                        return(File(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "ncoin_history.xlsx"));
                    }
                }
            }
            catch (Exception e)
            {
                cms_db.AddToExceptionLog("Export", "PackageManager", e.ToString(), long.Parse(User.Identity.GetUserId()));
                return(null);
            }
        }