public async Task <JsonResult> GetCheckRecord(SearchCheckModel model, PaginationViewModel pagination) { ResWithPaginationViewModel res = new ResWithPaginationViewModel(); try { var result = await _checkRecord.GetCheckRecord(model, pagination); res.Data = result.Data; res.Pagination = result.Pagination; res.Message = result.Message; res.Success = result.Success; res.HttpStatusCode = System.Net.HttpStatusCode.OK; } catch { res.Message = "與伺服器連線發生錯誤"; res.Success = false; res.HttpStatusCode = System.Net.HttpStatusCode.InternalServerError; } res.ResponseTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); return(Json(res, JsonRequestBehavior.DenyGet)); }
/// <summary> /// 取得打卡列表 /// </summary> /// <param name="model"></param> /// <param name="pagination"></param> /// <returns></returns> public async Task <ResWithPaginationViewModel> GetCheckRecord(SearchCheckModel model, PaginationViewModel pagination) { ResWithPaginationViewModel pageData = new ResWithPaginationViewModel(); List <CheckRecordViewModel> check_inList = new List <CheckRecordViewModel>(); try { var query = from a in _check_in.GetAll() join b in _user.GetAll() on a.ur_id equals b.ur_id where a.ci_da >= model.StartDateTime && a.ci_da <= model.EndDateTime select new CheckRecordViewModel { ci_sn = a.ci_sn, ur_id = a.ur_id, ci_da = a.ci_da, ci_ut = a.ci_ut, ci_dt = a.ci_dt, ur_ac = b.ur_ac, ci_ct = a.ci_ct, Remark = a.Remark, ci_hr = a.ci_hr }; if (!string.IsNullOrEmpty(model.Query)) { var QueryString = model.Query.ToLower().Trim(); query = query.Where(x => x.ur_ac.ToLower().Trim().Contains(QueryString)); } if (!string.IsNullOrEmpty(model.ur_id)) { query = query.Where(x => x.ur_id == model.ur_id); } var _TotalCount = query.Count(); pageData.Pagination = new PaginationViewModel { PerPage = pagination.PerPage, CurrentPage = pagination.CurrentPage, TotalCounts = _TotalCount }; query = query .OrderByDescending(x => x.ci_da) .Skip(pagination.GetSkipLength()) .Take(pagination.PerPage); if (query.Any()) { check_inList = query.OrderByDescending(x => x.ci_da).ToList(); pageData.Data = check_inList; pageData.Success = true; pageData.Message = "取得打卡紀錄成功"; } else { pageData.Success = true; pageData.Message = "尚未有任何打卡紀錄"; } } catch { pageData.Success = false; pageData.Message = "取得打卡紀錄失敗"; } return(await Task.Run(() => pageData)); }