Пример #1
0
        //public ActionResult Query(BillQueryViewModel query, int? page = 1)
        public ActionResult Query(BillQueryViewModel query)
        {
            //定位在當初輸入資料的那個值
            ViewBag.BillTypes = new SelectList(GlobalCodeMappings.BillTypes, "Key", "Value", query.BillType);

            #region Model 檢查

            //輸入資料驗證
            if (!ModelState.IsValid)
            {
                return(View(query));
            }

            #endregion

            #region 呼叫服務層

            //已通過資料驗證
            int?page       = query.PageIndex; //原本由 HttpGet 的 QueryString 取得, 改由 Form 取得
            int pageNumber = (!page.HasValue ? 1 : (page.Value < 1 ? 1 : page.Value));
            var bills      = _billingSvc.GetByQuery(query);
            var result     = bills.ToPagedList(pageNumber, pageSize);
            query.QueryResult = result;

            #endregion

            #region 回傳結果

            return(View(query));

            #endregion
        }
Пример #2
0
        public IActionResult About()
        {
            var model = new BillQueryViewModel
            {
                billDate         = DateTime.Now.ToString("yyyy-MM-dd"),
                billNo           = string.Empty,
                requestTimestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
            };

            return(View(model));
        }
Пример #3
0
        public async Task <IActionResult> About(BillQueryViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var req = new BillQueryRequest()
            {
                BillDate         = model.billDate,
                BillNo           = model.billNo,
                RequestTimestamp = model.requestTimestamp
            };
            var res = await _client.ExecuteAsync(req);

            return(Ok(res));
        }
Пример #4
0
        public IEnumerable <BillingItemViewModel> GetByQuery(BillQueryViewModel query)
        {
            //建立取全部資料的 SQL
            //註: 以下這些敍述, 都還沒有到 DB 實際存取; 只有在 View 的 foreach, 才會真正取資料
            var bills = this.GetAll();

            //再逐步下 WHERE
            //參考: http://stackoverflow.com/questions/6353350/multiple-where-conditions-in-ef
            if (query.BillType != null && query.BillType > -1)
            {
                bills = bills.Where(x => x.BillType == query.BillType);
            }

            //假設在呼叫之前, 都已驗證過
            if (query.StartDate.HasValue)
            {
                bills = bills.Where(x => x.BillDate >= query.StartDate);
            }
            if (query.EndDate.HasValue)
            {
                bills = bills.Where(x => x.BillDate <= query.EndDate);
            }

            bills = bills.OrderByDescending(x => x.BillDate);
            return(bills);

            //===========================================
            //註: 送到 SQL Server 的查詢語句範例
            //===========================================
            //--Region Parameters
            //DECLARE @p0 DateTime = '2016-05-10 00:00:00.000'
            //DECLARE @p1 DateTime = '2016-04-01 00:00:00.000'
            //DECLARE @p2 Int = 1
            //-- EndRegion
            //SELECT[t0].[Id], [t0].[Categoryyy]
            //        AS[BillType], [t0].[Dateee]
            //        AS[BillDate], [t0].[Amounttt]
            //        AS[Amount], [t0].[Remarkkk]
            //        AS[Memo]
            //FROM[AccountBook] AS[t0]
            //WHERE([t0].[Dateee] <= @p0) AND([t0].[Dateee] >= @p1) AND([t0].[Categoryyy] = @p2)
            //ORDER BY[t0].[Dateee]
            //        DESC
        }
Пример #5
0
        public ActionResult Query()
        {
            #region 準備初始資料

            var obj = new BillQueryViewModel()
            {
                StartDate = DateTime.Today,
                EndDate   = DateTime.Today,
                PageIndex = 1
            };
            ViewBag.BillTypes = new SelectList(GlobalCodeMappings.BillTypes, "Key", "Value", -1);

            #endregion

            #region 回傳結果

            return(View(obj));

            #endregion
        }
Пример #6
0
        public IEnumerable <BillingItemViewModel> GetByQuery(BillQueryViewModel query)
        {
            var bills = _billingBo.GetByQuery(query);

            return(bills);
        }