コード例 #1
0
        protected void SubmitButton_Click(object sender, EventArgs e)
        {
            using (TpsDbContext tps = new TpsDbContext()) {
                StaffRequest request = new StaffRequest();
                request.ContractID = int.Parse(ContractDropDownList.SelectedValue);

                int[] chosenStaff = (int[])ViewState["ChosenStaff"];
                for (int i = 0; i < chosenStaff.Length; i++)
                {
                    int id = chosenStaff[i];
                    if (id == 0)
                    {
                        continue;
                    }
                    if (i == 0)
                    {
                        request.Staff1 = tps.Users.Where(u => u.UserID == id).Single();
                    }
                    else if (i == 1)
                    {
                        request.Staff2 = tps.Users.Where(u => u.UserID == id).Single();
                    }
                    else if (i == 2)
                    {
                        request.Staff3 = tps.Users.Where(u => u.UserID == id).Single();
                    }
                }

                tps.Requests.Add(request);
                tps.SaveChanges();
            }

            Response.Redirect("~/MyStaffingRequests.aspx");
        }
コード例 #2
0
        public async Task <ActionResult> Post([FromForm] StaffRequest request)
        {
            var result = await _staffService.PostAsync(request);

            if (result != null)
            {
                return(Ok(result));
            }
            return(NotFound());
        }
コード例 #3
0
        public StaffResponse Staffs([FromUri] StaffRequest request)
        {
            var result = new StaffResponse();

            result.rows    = GetData().Skip(request.start).Take(request.limit).Select(item => item).ToList();
            result.total   = result.rows.Count;
            result.success = true;

            return(result);
        }
コード例 #4
0
        //
        // GET: /OA/Staff/

        public ActionResult Index(StaffRequest request)
        {
            var branchList = this.OAService.GetBranchList(null);

            this.ViewBag.branchId = new SelectList(branchList, "ID", "Name");

            var roleList = this.AccountService.GetRoleList(null);

            this.ViewBag.roleId = new SelectList(Evisou.Framework.Utility.EnumHelper.GetAllItemList <EnumPosition>());//new SelectList(roleList, "ID", "Name");

            this.ViewBag.position = new SelectList(EnumHelper.GetItemValueList <EnumPosition>(), "Key", "Value");
            var result = this.OAService.GetStaffList(request);

            return(View(result));
        }
コード例 #5
0
        public IEnumerable <Staff> GetStaffList(StaffRequest request = null)
        {
            request = request ?? new StaffRequest();
            using (var dbContext = new HRDbContext())
            {
                IQueryable <Staff> staffs = dbContext.Staffs.Include("Branch");

                if (!string.IsNullOrEmpty(request.Name))
                {
                    staffs = staffs.Where(u => u.Name.Contains(request.Name));
                }

                if (request.BranchId > 0)
                {
                    staffs = staffs.Where(u => u.BranchId == request.BranchId);
                }

                return(staffs.OrderByDescending(u => u.ID).ToPagedList(request.PageIndex, request.PageSize));
            }
        }
コード例 #6
0
        public HttpResponseMessage Save(StaffRequest req)
        {
            StaffResponse res = new StaffResponse {
                Status = "OK"
            };

            if (IsValid(req.SecurityToken))
            {
                var studentSvc = new StaffService(this._dbContext);
                res.Staff = studentSvc.Save(req.Staff);
            }
            else
            {
                res = new StaffResponse {
                    Status = "Error", ErrorCode = "ERR1001", ErrorMessage = "Invalid or expired token"
                };
                CurrentLoggerProvider.Info(string.Format("Invalid Request. Student Id: {0}", req.Staff.StaffId));
            }
            return(Request.CreateResponse(HttpStatusCode.OK, res));
        }
コード例 #7
0
        protected void RequestsGridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            DropDownList staffDropDownList = (DropDownList)RequestsGridView.Rows[e.RowIndex].FindControl("StaffDropDownList");

            using (TpsDbContext tps = new TpsDbContext()) {
                int          requestId = (int)e.Keys[0];
                StaffRequest request   = tps.Requests.Where(r => r.RequestID == requestId).Single();

                if (staffDropDownList.SelectedValue == "0")
                {
                    request.Status = "Denied";
                }
                else
                {
                    int staffId = int.Parse(staffDropDownList.SelectedValue);
                    request.Status         = "Approved";
                    request.Contract.Staff = tps.Users.Where(u => u.UserID == staffId).Single();
                }

                tps.SaveChanges();
            }
        }
コード例 #8
0
        protected void RequestsGridView_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.DataItem != null)
            {
                StaffRequest request = (StaffRequest)e.Row.DataItem;

                if (request.Status != "In Review")
                {
                    e.Row.Cells[5].Visible = false;
                }

                DropDownList staffDropDownList = (DropDownList)e.Row.FindControl("StaffDropDownList");
                if (staffDropDownList != null)
                {
                    staffDropDownList.Items.Add(new ListItem("Denied", "0"));

                    if (request.Staff1 != null)
                    {
                        staffDropDownList.Items.Add(new ListItem(string.Format("Approved: {0}, {1}",
                                                                               request.Staff1.LastName, request.Staff1.FirstName), request.Staff1.UserID.ToString()));
                    }

                    if (request.Staff2 != null)
                    {
                        staffDropDownList.Items.Add(new ListItem(string.Format("Approved: {0}, {1}",
                                                                               request.Staff2.LastName, request.Staff2.FirstName), request.Staff2.UserID.ToString()));
                    }

                    if (request.Staff3 != null)
                    {
                        staffDropDownList.Items.Add(new ListItem(string.Format("Approved: {0}, {1}",
                                                                               request.Staff3.LastName, request.Staff3.FirstName), request.Staff3.UserID.ToString()));
                    }
                }
            }
        }
コード例 #9
0
ファイル: StaffController.cs プロジェクト: liumyzone/HaoTang
        //
        // GET: /OA/Staff/

        public ActionResult Index(StaffRequest request)
        {
            var result = this.OAService.GetStaffList(request);

            return(View(result));
        }
コード例 #10
0
        public ActionResult Datatable(StaffRequest request)
        {
            #region 自定义动作
            if (!string.IsNullOrEmpty(request.customActionType))
            {
                string[]   id_Array = Request.Params.GetValues("id[]");
                List <int> ids      = new List <int>();
                foreach (string i in id_Array)
                {
                    ids.Add(int.Parse(i));
                }

                switch (request.customActionType)
                {
                case "group_action":

                    switch (request.customActionName)
                    {
                    case "delete":
                        this.OAService.DeleteStaff(ids);
                        break;
                    }
                    break;

                case "delete":
                    this.OAService.DeleteStaff(ids);
                    break;
                }
            }

            #endregion

            var allStaff = this.OAService.GetStaffList(null);

            IEnumerable <Staff> filterStaff = allStaff;


            #region 搜索
            if (!string.IsNullOrEmpty(request.search))
            {
                var isNameSearchable = Convert.ToBoolean(Request["columns[1][searchable]"]);
            }
            else if (request.action == "filter")
            {
                var NameFilter = Convert.ToString(Request["name"]).ToLower().Trim();

                var PositionFilter = Convert.ToString(Request["position"]).ToLower().Trim();

                var BranchFilter = Convert.ToString(Request["branchId"]).ToLower().Trim();

                var GenderFilter = Convert.ToString(Request["gender"]).ToLower().Trim();

                var BrithFromFilter = Convert.ToString(Request["brith_from"]).ToLower().Trim();

                var BrithToFilter = Convert.ToString(Request["brith_to"]).ToLower().Trim();

                var EmailFilter = Convert.ToString(Request["email"]).ToLower().Trim();

                var TelFilter = Convert.ToString(Request["tel"]).ToLower().Trim();

                // var AddressFilter = Convert.ToString(Request["address"]).Trim().ToLower();

                var isNameSearchable = Convert.ToBoolean(Request["columns[1][searchable]"].ToString());

                if (isNameSearchable)
                {
                    filterStaff = filterStaff.Where(c => c.Name.ToLower().Contains(NameFilter));
                }
                var isPositionSearchable = Convert.ToBoolean(Request["columns[2][searchable]"].ToString());

                if (isPositionSearchable && !string.IsNullOrEmpty(PositionFilter))
                {
                    filterStaff = filterStaff.Where(c => c.Position == PositionFilter.ToInt());
                }

                var isBranchSearchable = Convert.ToBoolean(Request["columns[3][searchable]"].ToString());

                if (isBranchSearchable)
                {
                    //  filterStaff = filterStaff.Where(c => c.Branch != null && c.Branch.ID == BranchFilter.ToInt());
                }

                var isGenderSearchable = Convert.ToBoolean(Request["columns[4][searchable]"].ToString());

                if (isGenderSearchable)
                {
                    filterStaff = filterStaff.Where(c => Evisou.Framework.Utility.EnumHelper.GetEnumTitle((EnumGender)c.Gender).ToLower().Contains(GenderFilter));
                }

                var isBirthSearchable = Convert.ToBoolean(Request["columns[5][searchable]"].ToString());

                if (isBirthSearchable && !string.IsNullOrEmpty(BrithFromFilter) && !string.IsNullOrEmpty(BrithToFilter))
                {
                    filterStaff = filterStaff.Where(c => c.BirthDate >= DateTime.Parse(BrithFromFilter) && c.BirthDate <= DateTime.Parse(BrithToFilter));
                }

                var isEmailSearchable = Convert.ToBoolean(Request["columns[6][searchable]"].ToString());

                if (isEmailSearchable)
                {
                    filterStaff = filterStaff.Where(c => c.Email.ToLower().Contains(EmailFilter));
                }

                var isTelSearchable = Convert.ToBoolean(Request["columns[7][searchable]"].ToString());

                if (isTelSearchable)
                {
                    filterStaff = filterStaff.Where(c => c.Tel.ToLower().Contains(TelFilter));
                }

                var isAddressSearchable = Convert.ToBoolean(Request["columns[8][searchable]"].ToString());

                if (isAddressSearchable)
                {
                    // filterStaff = filterStaff.Where(c => c.Address.ToLower().Contains(AddressFilter));
                    //filterStaff = filterStaff.Where(c => (!string.IsNullOrEmpty(c.Address))).Where(c => c.Address.ToLower().Contains(AddressFilter));
                }
            }
            else if (request.action == "filter_cancel")
            {
                filterStaff = allStaff;
            }
            else
            {
                filterStaff = allStaff;
            }
            #endregion

            #region 排序
            var isNameSortable     = Convert.ToBoolean(Request["columns[1][orderable]"]);
            var isPositionSortable = Convert.ToBoolean(Request["columns[2][orderable]"]);
            var isBranchSortable   = Convert.ToBoolean(Request["columns[3][orderable]"]);
            var isGenderSortable   = Convert.ToBoolean(Request["columns[4][orderable]"]);
            var isBirthSortable    = Convert.ToBoolean(Request["columns[5][orderable]"]);
            var isEmailSortable    = Convert.ToBoolean(Request["columns[6][orderable]"]);
            var isTelSortable      = Convert.ToBoolean(Request["columns[7][orderable]"]);
            var isAddressSortable  = Convert.ToBoolean(Request["columns[8][orderable]"]);


            var sortColumnIndex = Convert.ToInt32(Request["order[0][column]"]);

            Func <Staff, string> orderingFunction = (c =>
                                                     sortColumnIndex == 1 && isNameSortable ? c.Name :
                                                     sortColumnIndex == 2 && isPositionSortable ? Evisou.Framework.Utility.EnumHelper.GetEnumTitle((EnumPosition)c.Position):
                                                     sortColumnIndex == 3 && isBranchSortable && c.Branch != null ? c.Branch.Name :
                                                     sortColumnIndex == 4 && isGenderSortable ? Evisou.Framework.Utility.EnumHelper.GetEnumTitle((EnumGender)c.Gender) :
                                                     sortColumnIndex == 5 && isBirthSortable ? c.BirthDate.ToCnDataString() :
                                                     sortColumnIndex == 6 && isEmailSortable ? c.Email :
                                                     sortColumnIndex == 7 && isTelSortable ? c.Tel :
                                                     sortColumnIndex == 8 && isAddressSortable ? c.Address:
                                                     "");
            var sortDirection = Request["order[0][dir]"]; // asc or desc

            if (sortDirection == "asc")
            {
                filterStaff = filterStaff.OrderBy(orderingFunction);
            }

            if (sortDirection == "desc")
            {
                filterStaff = filterStaff.OrderByDescending(orderingFunction);
            }

            #endregion
            var displayedStaff = filterStaff.Skip(request.start).Take(request.length);
            var result         = from c in displayedStaff
                                 select new[] {
                Convert.ToString(c.ID)
                , c.Name
                , Evisou.Framework.Utility.EnumHelper.GetEnumTitle((EnumPosition)c.Position)
                , c.Branch == null ? "未分配" : c.Branch.Name
                , Evisou.Framework.Utility.EnumHelper.GetEnumTitle((EnumGender)c.Gender)
                , c.BirthDate.ToCnDataString()
                , c.Email
                , c.Tel
                , c.Address
                , Convert.ToString(c.ID)
            };
            return(Json(new
            {
                draw = request.draw,             //param.sEcho,
                recordsTotal = allStaff.Count(), //alltransactions.Count(),
                recordsFiltered = filterStaff.Count(),
                data = result
            },
                        JsonRequestBehavior.AllowGet));
        }