Example #1
0
        /// <summary>
        /// 取得使用者列表
        /// </summary>
        /// <param name="searchModel"></param>
        /// <param name="pagination"></param>
        /// <returns></returns>
        public async Task <JsonResult> GetUserList(UserSearchModel searchModel, PaginationViewModel pagination)
        {
            ResWithPaginationViewModel res = new ResWithPaginationViewModel();

            try
            {
                var result = await _userService.GetUserList(searchModel, pagination);

                res.Data           = result.Data;
                res.Pagination     = result.Pagination;
                res.MinDateTime    = result.MinDateTime;
                res.MaxDateTime    = result.MaxDateTime;
                res.Success        = true;
                res.Message        = "取得權限管理列表成功";
                res.HttpStatusCode = System.Net.HttpStatusCode.OK;
                //await _backOperationService.CreateBackOperation(CurrendUserid, OperationName + "查詢", CurrendUserIp);
            }
            catch
            {
                res.Success        = false;
                res.Message        = "與伺服器連線發生錯誤";
                res.HttpStatusCode = System.Net.HttpStatusCode.InternalServerError;
            }
            res.ResponseTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
            return(Json(res, JsonRequestBehavior.AllowGet));
        }
Example #2
0
        /// <summary>
        /// 取得彙總紀錄列表
        /// </summary>
        /// <param name="searchModel"></param>
        /// <returns></returns>
        public async Task <ResponseViewModel> GetTotalRecordList(SearchModel searchModel)
        {
            ResponseViewModel         res       = new ResWithPaginationViewModel();
            List <Check_AllViewModel> check_All = new List <Check_AllViewModel>();

            try
            {
                var year  = searchModel.StartDateTime.Year;
                var month = searchModel.StartDateTime.Month;

                var query = from a in _check_all.GetAll()
                            join b in _user.GetAll() on a.ur_id equals b.ur_id into user
                            from b in user.DefaultIfEmpty()
                            where a.ca_ya == year && a.ca_mo == month && !string.IsNullOrEmpty(b.ur_id)
                            select new Check_AllViewModel
                {
                    ca_sn     = a.ca_sn,
                    ur_id     = a.ur_id,
                    ca_ya     = a.ca_ya,
                    ca_mo     = a.ca_mo,
                    ca_dy     = a.ca_dy,
                    ca_on     = a.ca_on,
                    ca_hr     = a.ca_hr,
                    ur_ac     = b.ur_ac,
                    ca_hr_avg = Math.Round((a.ca_hr * 1.00) / (a.ca_on * 1.00), 1)
                };

                if (query.Any())
                {
                    if (!string.IsNullOrEmpty(searchModel.Query))
                    {
                        var QueryString = searchModel.Query.Trim().ToLower();
                        query = query.Where(x => x.ur_ac.Trim().ToLower().Contains(QueryString));
                    }

                    check_All   = query.ToList();
                    res.Data    = check_All;
                    res.Success = true;
                    res.Message = "取得彙總紀錄成功";
                }
            }
            catch
            {
                res.Success = false;
                res.Message = "取得彙總紀錄失敗";
            }

            return(await Task.Run(() => res));
        }
        /// <summary>
        /// 取得彙總紀錄列表
        /// </summary>
        /// <param name="searchModel"></param>
        /// <returns></returns>
        public async Task <JsonResult> GetTotalRecord(SearchModel searchModel)
        {
            ResWithPaginationViewModel res = new ResWithPaginationViewModel();

            try
            {
                var result = await _totalService.GetTotalRecordList(searchModel);

                res.Data           = result.Data;
                res.Success        = result.Success;
                res.Message        = result.Message;
                res.HttpStatusCode = System.Net.HttpStatusCode.OK;
            }
            catch
            {
                res.Success        = false;
                res.Message        = "與伺服器連線發生錯誤";
                res.HttpStatusCode = System.Net.HttpStatusCode.InternalServerError;
            }
            res.ResponseTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
            return(Json(res, JsonRequestBehavior.AllowGet));
        }
        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));
        }
Example #5
0
        /// <summary>
        /// 取得帳號權限管理列表
        /// </summary>
        /// <param name="searchModel"></param>
        /// <param name="pagination"></param>
        /// <returns></returns>
        public async Task <ResWithPaginationViewModel> GetUserList(UserSearchModel searchModel, PaginationViewModel pagination)
        {
            ResWithPaginationViewModel pageData = new ResWithPaginationViewModel();
            List <UserViewModel>       userlist = new List <UserViewModel>();

            var query = from a in _db.user
                        select new UserViewModel
            {
                ur_sn = a.ur_sn,
                ur_id = a.ur_id,
                ur_ac = a.ur_ac,
                ur_pw = a.ur_pw,
                ur_ct = a.ur_ct,
                ur_is = a.ur_is,
                ur_im = a.ur_im
            };

            pageData.MaxDateTime = query.OrderByDescending(x => x.ur_ct).FirstOrDefault().ur_ct;
            pageData.MinDateTime = query.OrderBy(x => x.ur_ct).FirstOrDefault().ur_ct;

            if (searchModel.StartDateTime != null)
            {
                query = query.Where(x => x.ur_ct >= searchModel.StartDateTime);
            }
            if (searchModel.EndDateTime != null)
            {
                query = query.Where(x => x.ur_ct <= searchModel.EndDateTime);
            }
            if (!string.IsNullOrEmpty(searchModel.Query))
            {
                switch (searchModel.SearchEnum)
                {
                case 0:
                    query = query.Where(x => x.ur_ac.ToLower().Trim().Contains(searchModel.Query));
                    break;

                default:
                    break;
                }
            }


            var _TotalCount = query.Count();

            pageData.Pagination = new PaginationViewModel
            {
                PerPage     = pagination.PerPage,
                CurrentPage = pagination.CurrentPage,
                TotalCounts = _TotalCount
            };

            query = query
                    .OrderByDescending(x => x.ur_ct)
                    .Skip(pagination.GetSkipLength())
                    .Take(pagination.PerPage);

            if (query.Any())
            {
                var list = query.OrderByDescending(x => x.ur_ct).ToList();
                userlist = list;
            }

            pageData.Data    = userlist;
            pageData.Success = true;
            return(await Task.Run(() => pageData));
        }
        /// <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));
        }