示例#1
0
        public ActionResult _Index1(StaffSearch staffSearch, int?page)
        {
            int TotalCount = 0;
            var pageSize   = 10;
            var pageNumber = page ?? 1;

            int CurrentPage = pageNumber;
            int endPage     = CurrentPage + 4;
            int PagesToShow = 10;

            ViewBag.TotalCount = TotalCount;
            ViewBag.PageSize   = pageSize;

            var body           = JsonConvert.SerializeObject(staffSearch);
            var StaffModelList = Services.StaffService.GetSearchData(staffSearch, page, out TotalCount);

            var result     = Helper.CommonFunction.GetPages(TotalCount, pageSize, CurrentPage, PagesToShow);
            int totalPages = (TotalCount / pageSize) + (TotalCount % pageSize == 0 ? 0 : 1);

            ViewBag.result      = result;
            ViewBag.totalPages  = totalPages;
            ViewBag.CurrentPage = CurrentPage;
            var pageCount = result.Count();

            ViewBag.pageCount = pageCount;

            ViewBag.endPage = endPage;

            return(View(StaffModelList));
        }
示例#2
0
        public Task <IEnumerable <Staff> > GetAsync(StaffSearch option, CancellationToken token = default(CancellationToken))
        {
            var query = @"
SELECT        st.*
            , dp.Code   DepartmentCode
            , dp.Name   DepartmentName
FROM        Staff st
LEFT JOIN   Department dp       ON dp.Id = st.DepartmentId
WHERE       st.Id           = st.Id";

            if (option.CompanyId.HasValue)
            {
                query += @"
AND         st.CompanyId    = @CompanyId";
            }
            if (option.Ids?.Any() ?? false)
            {
                query += @"
AND         st.Id           IN (SELECT Id   FROM @Ids)";
            }
            if (option.Codes?.Any() ?? false)
            {
                query += @"
AND         st.Code         IN (SELECT Code FROM @Codes)";
            }
            if (!string.IsNullOrWhiteSpace(option.Name))
            {
                option.Name = Sql.GetWrappedValue(option.Name);
                query      += @"
AND         st.Name         LIKE @Name";
            }
            if (option.DepartmentId.HasValue)
            {
                query += @"
AND         st.DepartmentId = @DepartmentId";
            }
            if (!string.IsNullOrWhiteSpace(option.Mail))
            {
                query += @"
AND         st.Mail         = @Mail";
            }
            query += @"
ORDER BY      st.CompanyId      ASC
            , st.Code           ASC";
            return(dbHelper.GetItemsAsync <Staff>(query, new {
                option.CompanyId,
                option.Name,
                option.DepartmentId,
                option.Mail,
                Ids = option.Ids.GetTableParameter(),
                Codes = option.Codes.GetTableParameter(),
            }, token));
        }
示例#3
0
 public async Task <StaffsResult> GetItemsAsync(string SessionKey, StaffSearch option)
 {
     return(await authorizationProcessor.DoAuthorizeAsync(SessionKey, async token =>
     {
         var result = (await staffProcessor.GetAsync(option, token)).ToList();
         return new StaffsResult
         {
             ProcessResult = new ProcessResult {
                 Result = true
             },
             Staffs = result,
         };
     }, logger));
 }
示例#4
0
 public async Task <IEnumerable <Staff> > SearchByKey(params string[] keys)
 => await ServiceProxyFactory.DoAsync(async (StaffMasterClient client) =>
 {
     var option = new StaffSearch {
         CompanyId       = Application.Login.CompanyId,
         UseCommonSearch = true,
     };
     if (keys?.Any() ?? false)
     {
         option.Name = keys.First();
     }
     var result = await client.GetItemsAsync(Application.Login.SessionKey, option);
     if (result.ProcessResult.Result)
     {
         return(result.Staffs);
     }
     return(null);
 });
示例#5
0
        public List <StaffModel> GetSearchData(StaffSearch staffSearch, int?page, out int TotalCount)
        {
            // int pageSize = 4;
            int pageNumber = (page ?? 1);
            var body       = JsonConvert.SerializeObject(staffSearch);
            var result     = ServerResponse.Invoke <ServiceResult <List <StaffModel> > >("api/staff/getSearchData", body, "Post");

            TotalCount = result.TotalCount;
            if (result.data != null)
            {
                var model = result.data.ToList();
                return(model);
            }
            else
            {
            }
            return(result.data.ToList());
        }
示例#6
0
 public async Task <IEnumerable <Staff> > GetAsync(StaffSearch option, CancellationToken token = default(CancellationToken))
 => await staffQueryProcessor.GetAsync(option, token);
示例#7
0
 public void GetManagerIdBySubordinateNameTest()
 {
     StaffSearch staffSearch = new StaffSearch();
     var         item        = staffSearch.GetManagerBySubordinateStaffId("43981976");
 }
示例#8
0
 public async Task <ActionResult <IEnumerable <Staff> > > GetItems(StaffSearch option, CancellationToken token)
 => (await staffProcessor.GetAsync(option, token)).ToArray();
示例#9
0
        public JsonResult GetList(GridPager pager, StaffSearch staffSearch)
        {
            List <Staff> list            = new List <Staff>();
            DateTime     defaultDateTime = new DateTime(1, 1, 1, 0, 0, 0);

            //staffSearch.name = "";

            /*
             * 初始化页面:只有pager接收到浏览器传来的参数,staffSearch中的属性均为默认值。
             */
            if (staffSearch.name == null && staffSearch.date_from.Value == defaultDateTime && staffSearch.date_to == defaultDateTime)
            {
                pager.totalRows = StaffService.GetModels(c => true).ToList().Count();
                //初始化页面根据Id排序
                list = StaffService.GetModelsByPage(pager.rows, pager.page, pager.isAsc, c => c.Id, c => true).ToList();
            }

            /*
             * 查询页面:staffSearch接收到浏览器传来的值,staffSearch中的属性均变为自定义的默认值。
             */
            else
            {
                //先想一想SQL怎么写,再写Lambda表达式
                Expression <Func <Staff, bool> > whereLambda = u =>
                                                               (u.CreateTime >= staffSearch.date_from && u.CreateTime <= staffSearch.date_to) &&
                                                               u.Name.Contains(staffSearch.name);
                //查询页面根据时间增序排列
                Expression <Func <Staff, DateTime?> > orderByLambda = c => c.CreateTime;

                pager.totalRows = StaffService.GetModels(whereLambda).ToList().Count();
                list            = StaffService.GetModelsByPage(pager.rows, pager.page, pager.isAsc, orderByLambda, whereLambda).ToList();
            }

            var json = new
            {
                total = pager.totalRows,

                /*
                 * rows = (from r in list
                 *      select new Staff()
                 *      {
                 *          Id = r.Id,
                 *          Name = r.Name,
                 *          Age = r.Age,
                 *          Sex = r.Sex,
                 *          CreateTime = r.CreateTime,
                 *      }).ToArray()
                 */

                rows = list.Select(staff => new
                {
                    Id         = staff.Id,
                    Name       = staff.Name,
                    Age        = staff.Age,
                    Sex        = staff.Sex,
                    CreateTime = staff.CreateTime
                }).ToArray()
            };

            return(Json(json, JsonRequestBehavior.AllowGet));
        }