Example #1
0
        public async Task <ActionResult> _AddStaff()
        {
            var filter = new FilterStaffModel();

            filter.Branchs     = new SelectList(await GetBranches(), "Id", "Name", 0);
            filter.Departments = new SelectList(await GetDepartments(), "Id", "Name", 0);

            return(View(new ListStaffModel {
                Filter = filter
            }));
        }
Example #2
0
 public async Task <StaffFilterResult> Search(FilterStaffModel model)
 {
     return(await staffContext.Filter(model.page - 1, model.rows));
 }
Example #3
0
        public IHttpActionResult Post(FilterStaffModel request)
        {
            var query = db.StaffProfile.Where(u => u.User.Display && u.User.UserType == UserType.Staff);

            var totalCount = query.Count();

            //advance search
            query = query.Where(s => (request.Name == null || s.User.Name.Contains(request.Name)) &&
                                (request.BranchId == null || s.BranchId == request.BranchId) &&
                                (request.Email == null || s.User.Email.Contains(request.Email)) &&
                                (request.DepartmentId == null || s.DepartmentId == request.DepartmentId)
                                );

            //quick search
            if (!string.IsNullOrEmpty(request.search.value))
            {
                var value = request.search.value.Trim();

                query = query.Where(p => p.User.Name.Contains(value) ||
                                    p.User.Email.Contains(value) ||
                                    p.Branch.Name.Contains(value) ||
                                    p.Department.Name.Contains(value)
                                    );
            }

            var filteredCount = query.Count();

            //order
            if (request.order != null)
            {
                string sortBy        = request.columns[request.order[0].column].data;
                bool   sortAscending = request.order[0].dir.ToLower() == "asc";

                switch (sortBy)
                {
                case "Name":

                    if (sortAscending)
                    {
                        query = query.OrderBy(o => o.User.Name);
                    }
                    else
                    {
                        query = query.OrderByDescending(o => o.User.Name);
                    }

                    break;

                case "Branch":

                    if (sortAscending)
                    {
                        query = query.OrderBy(o => o.Branch.Name);
                    }
                    else
                    {
                        query = query.OrderByDescending(o => o.Branch.Name);
                    }

                    break;

                case "Department":

                    if (sortAscending)
                    {
                        query = query.OrderBy(o => o.Department.Name);
                    }
                    else
                    {
                        query = query.OrderByDescending(o => o.Department.Name);
                    }

                    break;

                case "Email":

                    if (sortAscending)
                    {
                        query = query.OrderBy(o => o.User.Email);
                    }
                    else
                    {
                        query = query.OrderByDescending(o => o.User.Email);
                    }

                    break;

                default:
                    query = query.OrderByDescending(o => o.User.Name);
                    break;
                }
            }
            else
            {
                query = query.OrderByDescending(o => o.User.Name);
            }

            var data = query.Skip(request.start).Take(request.length)
                       .Select(s => new StaffModel
            {
                Id         = s.User.Id,
                Name       = s.User.Name,
                Email      = s.User.Email,
                Branch     = s.Branch.Name,
                Department = s.Department.Name,
                Status     = s.User.UserAccount.IsEnable
            }).ToList();

            return(Ok(new DataTableResponse
            {
                draw = request.draw,
                recordsTotal = totalCount,
                recordsFiltered = filteredCount,
                data = data.ToArray()
            }));
        }
Example #4
0
        public async Task <ActionResult> List(FilterStaffModel filter)
        {
            var response = await WepApiMethod.SendApiAsync <DataTableResponse>(HttpVerbs.Post, $"Administration/Staff/GetAll", filter);

            return(Content(JsonConvert.SerializeObject(response.Data), "application/json"));
        }