//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 }
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)); }
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)); }
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 }
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 }
public IEnumerable <BillingItemViewModel> GetByQuery(BillQueryViewModel query) { var bills = _billingBo.GetByQuery(query); return(bills); }