public ActionResult Index(int?page)
        {
            DateTime            dt      = DateTime.Now;
            DateTime            endTime = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d")));
            NameValueCollection q       = new NameValueCollection();

            q.Add("CreatedAtStart", endTime.AddDays(-1).ToString("yyyy/MM/dd 10:00"));
            q.Add("CreatedAtEnd", DateTime.Now.AddHours(1).ToString("yyyy/MM/dd HH:00"));
            InspectOriginQueryModel query = new InspectOriginQueryModel(q);

            IPagedList <InspectOrigin> inspects = null;

            using (var txn = new System.Transactions.TransactionScope(TransactionScopeOption.Required,
                                                                      new TransactionOptions
            {
                IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted
            }))
            {
                using (IUnitOfWork unitOfWork = new TskDataDataContext(DbUtil.ConnectionString))
                {
                    int currentPageIndex = page.HasValue ? (page.Value <= 0 ? 0 : page.Value - 1) : 0;
                    IInspectOriginRep inspectOriginRep = new InspectOriginRep(unitOfWork);
                    inspects = inspectOriginRep.Queryable(query.CreatedAtStart, query.CreatedAtEnd).ToPagedList(currentPageIndex, int.Parse(Resources.PageSize));
                }
            }
            ViewBag.Query = query;
            return(View(inspects));
        }
        private IQueryable <InspectOrigin> GenerateQuery(IUnitOfWork unitOfWork, InspectOriginQueryModel query)
        {
            IInspectOriginRep inspectRep = new InspectOriginRep(unitOfWork);

            return(inspectRep.Queryable().Where(item =>
                                                //(string.IsNullOrEmpty(query.Text) ? true : item.Text.Contains(query.Text))&&
                                                (query.ProcessResult.HasValue ? item.ProcessResult.Equals(query.ProcessResult) : true) &&
                                                (query.CreatedAtStart.HasValue ? item.CreatedAt >= query.CreatedAtStart : true) &&
                                                (query.CreatedAtEnd.HasValue ? item.CreatedAt <= query.CreatedAtEnd : true)
                                                ));
        }
        private List <InspectOrigin> ExportInspectOrigin(InspectOriginQueryModel query)
        {
            List <InspectOrigin> inspects = new List <InspectOrigin>();

            using (IUnitOfWork unitOfWork = new TskDataDataContext(DbUtil.ConnectionString))
            {
                IInspectOriginRep inspectRep = new InspectOriginRep(unitOfWork);
                inspects = GenerateQuery(unitOfWork, query).ToList <InspectOrigin>();
            }
            return(inspects);
        }
        private IPagedList <InspectOrigin> QueryInspectOrigin(InspectOriginQueryModel query, int?currentPageIndex, int?pageSize)
        {
            IPagedList <InspectOrigin> inspects;

            using (IUnitOfWork unitOfWork = new TskDataDataContext(DbUtil.ConnectionString))
            {
                IInspectOriginRep inspectRep = new InspectOriginRep(unitOfWork);
                inspects = GenerateQuery(unitOfWork, query).ToPagedList(currentPageIndex.Value, pageSize.Value);
            }
            return(inspects);
        }
        public ActionResult Query()
        {
            InspectOriginQueryModel query = new InspectOriginQueryModel(Request.QueryString);
            int currentPageIndex          = 0;

            int.TryParse(Request.QueryString.Get("page"), out currentPageIndex);
            currentPageIndex = currentPageIndex <= 0 ? 0 : currentPageIndex - 1;
            int pageSize = int.Parse(Resources.PageSize);

            ViewBag.Query = query;
            return(View("Index", QueryInspectOrigin(query, currentPageIndex, pageSize)));
        }
        public void Export()
        {
            InspectOriginQueryModel query = new InspectOriginQueryModel(Request.QueryString);

            ViewBag.Query = query;
            List <InspectOrigin> inspects = ExportInspectOrigin(query);
            MemoryStream         ms       = new MemoryStream();

            using (StreamWriter sw = new StreamWriter(ms, Encoding.UTF8))
            {
                // write head
                //   string max =
                sw.WriteLine(string.Join(",", InspectOriginQueryModel.CsvHead.ToArray()));
                foreach (InspectOrigin i in inspects)
                {
                    List <string> ii = new List <string>();
                    foreach (string field in InspectOriginQueryModel.Fileds)
                    {
                        //  var p = i.GetType().GetProperties();
                        var value = i.GetType().GetProperty(field).GetValue(i, null);
                        ii.Add(value == null ? "" : value.ToString());
                    }
                    sw.WriteLine(string.Join(",", ii.ToArray()));
                }
                //sw.WriteLine(max);
            }
            var filename    = "InspectOrigin" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
            var contenttype = "text/csv";

            Response.Clear();
            Response.ContentEncoding = Encoding.UTF8;
            Response.ContentType     = contenttype;
            Response.AddHeader("content-disposition", "attachment;filename=" + filename);
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.BinaryWrite(ms.ToArray());
            Response.End();
        }