Exemplo n.º 1
0
        /// <summary>
        /// Posts the leave request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>HttpResponse Message</returns>
        public HttpResponseMessage PostLeaveRequest(LeaveRequest request)
        {
            if (request != null && request.Leave != null && !string.IsNullOrEmpty(request.StartDate) && !string.IsNullOrEmpty(request.EndDate))
            {
                request.Leave.DateRange = this.leaveService.RetrieveLeaveDates(Convert.ToDateTime(request.StartDate, CultureInfo.CurrentCulture), Convert.ToDateTime(request.EndDate, CultureInfo.CurrentCulture), request.StartDateType, request.EndDateType, request.Leave.RequestedByDeveloperId);
                if (!string.IsNullOrEmpty(request.Leave.DateRange))
                {
                    if (request.Leave.ApplicationType == default(int))
                    {
                        request.Leave.ApplicationType = ApplicationType.Android;
                    }

                    var leaveResults = new LeaveResultCollection();
                    var leaveList = this.leaveService.InsertOrUpdate(request.Leave);
                    foreach (var item in leaveList)
                    {
                        leaveResults.Add(item);
                    }

                    return Request.CreateResponse(HttpStatusCode.Created, leaveResults);
                }
            }

            return Request.CreateResponse(HttpStatusCode.BadRequest);
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Requests(LeaveRequest leaveRequest)
        {
            var RequestToSubmit = new LeaveRequest
            {
                LeaveType = leaveRequest.LeaveType,
                StartDate = leaveRequest.StartDate,
                EndDate   = leaveRequest.EndDate,
                Reason    = leaveRequest.Reason,
                UserId    = leaveRequest.UserId
            };

            var submittedRequest = await _repo.Request(RequestToSubmit);

            if (submittedRequest == null)
            {
                return(BadRequest());
            }
            _log.LogInformation("New Leave request Submitted by " + submittedRequest.User.Username);
            return(Ok());
        }
Exemplo n.º 3
0
        public LeaveRequestModel MapToLeaveRequestModel(LeaveRequest leaveRequest)
        {
            if (leaveRequest == null)
            {
                return(null);
            }

            LeaveRequestModel leaveRequestModel = new LeaveRequestModel
            {
                LeaveRequestId  = leaveRequest.LeaveRequestId,
                EmployeeId      = leaveRequest.EmployeeId,
                ActionManagerId = leaveRequest.ActionManagerId,
                LeaveFrom       = leaveRequest.LeaveFrom,
                LeaveTo         = leaveRequest.LeaveTo,
                LeaveReason     = leaveRequest.LeaveDescription,
                StatusId        = leaveRequest.RequestStatusId
            };

            return(leaveRequestModel);
        }
        public async Task <IActionResult> PutLeaveRequest(int id, [FromBody] LeaveRequest leaveRequest)
        {
            try
            {
                var request = await leaveRequestService.UpdateLeaveRequest(leaveRequest, id);

                if (request.Id > 0)
                {
                    return(Ok(request));
                }
                else
                {
                    return(NotFound());
                }
            }
            catch (Exception)
            {
                return(BadRequest());
            }
        }
        // GET: LeaveRequests/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            LeaveRequest leaveRequest = db.LeaveRequests.Find(id);

            if (leaveRequest == null)
            {
                return(HttpNotFound());
            }

            /*  ViewBag.departmentManagerID = new SelectList(db.Employees, "departmentManagerID", "employeeName", leaveRequest.departmentManagerID);
             * ViewBag.deliveryManagerID = new SelectList(db.Employees, "deliveryManagerID", "employeeName", leaveRequest.deliveryManagerID);
             * ViewBag.employeeID = new SelectList(db.Employees, "employeeID", "employeeName", leaveRequest.employeeID);
             * ViewBag.leaveReasonID = new SelectList(db.LeaveReasons, "leaveReasonID", "leaveReasonName", leaveRequest.leaveReasonID);
             * ViewBag.requestStatusID = new SelectList(db.RequestStatus, "requestStatusID", "requestStatusName", leaveRequest.requestStatusID);*/
            return(View(leaveRequest));
        }
Exemplo n.º 6
0
        private static void CreateLeaveRequestInfoInADay(List <CalendarADay> retList, DateTime date,
                                                         decimal hour, LeaveRequest originalData, LeaveRequestItem originalDataItem,
                                                         DateTime from, DateTime to)
        {
            CalendarADay calendarADay         = CalendarADay.CreateOrGetCalendarADayByDate(retList, date.Date);
            string       leaveRequestTypeName = originalData.LeaveRequestType.Name;

            // -1 全部;0 新增;1 提交;2 审核不通过;3 审核通过;4 取消请假;5 拒绝取消假期;6 批准取消假期;7 审核中;8 审核取消中
            if (originalDataItem.Status == RequestStatus.New ||
                originalDataItem.Status == RequestStatus.Submit ||
                originalDataItem.Status == RequestStatus.Approving ||
                originalDataItem.Status == RequestStatus.CancelApproving ||
                originalDataItem.Status == RequestStatus.Cancelled)
            {
                leaveRequestTypeName = originalData.LeaveRequestType.Name + "(" + originalDataItem.Status.Name + ")";
            }

            DayItem day = new DayItem();

            day.ObjectID  = originalDataItem.LeaveRequestItemID;
            day.CType     = CalendarShowType.Leave;
            day.Start     = from;
            day.End       = to;
            day.DayDetail = leaveRequestTypeName + " " + Convert.ToSingle(hour) + "小时<br>理由:" + originalData.Reason;
            calendarADay.DayItems.Add(day);

            MonthItem month = new MonthItem();

            month.ObjectID = originalDataItem.LeaveRequestItemID;
            month.CType    = CalendarShowType.Leave;
            month.Title    = leaveRequestTypeName + " " + Convert.ToSingle(hour) + "小时";
            month.Date     = date;
            month.Detail   = leaveRequestTypeName + " 时段:" +
                             originalDataItem.FromDate.ToShortDateString() + " " +
                             originalDataItem.FromDate.ToShortTimeString() + "--" +
                             originalDataItem.ToDate.ToShortDateString() + " " +
                             originalDataItem.ToDate.ToShortTimeString() + " 请假时间(小时):" +
                             originalDataItem.CostTime + " 理由:" + originalData.Reason;
            calendarADay.MonthItems.Add(month);
            Utility.Clean(calendarADay);
        }
Exemplo n.º 7
0
        public async Task <ValidatorDTO> LeaveValidator(string username, LeaveRequest leaveRequest)
        {
            // Checking if the leave apply date is an opted in flexible holiday.
            var dateRangeDTO = new DateRangeDTO(leaveRequest.StartDate, leaveRequest.EndDate);

            var optedInHolidays = await flexibleHolidayService.GetOptedInHolidays(username, dateRangeDTO);

            if (optedInHolidays.Any())
            {
                return(new ValidatorDTO
                {
                    IsValid = false,
                    Message = $"You have opted in for a flexible holiday on {optedInHolidays.First().Date.ToString("dd/MM/yyyy")}"
                });
            }

            // No day in between the LeaveDateRange can be a Public Holiday
            var publicHoliday = await PublicHolidayValidator(leaveRequest);

            return(publicHoliday);
        }
Exemplo n.º 8
0
        public void NotifiesHrWhenAppropriate(LeaveRequest request, PersonWithStaff personWithStaff, int usedLeave,
                                              int totalYears, bool expectedEmailed)
        {
            var job = _servicesFixture.InsertJob(j =>
            {
                //force job to provide time off
                j.Type          = JobType.FullTime;
                j.OrgGroup.Type = GroupType.Department;
            });

            _dbConnection.Insert(personWithStaff);
            _dbConnection.Insert(personWithStaff.Staff);
            //create roles for # of years
            _servicesFixture.InsertRole(job.Id, personWithStaff.Id, totalYears);
            //insert used leave
            _servicesFixture.InsertLeaveRequest(request.Type, personWithStaff.Id, usedLeave);
            var actualEmailed = _leaveService.ShouldNotifyHr(request,
                                                             _leaveService.GetCurrentLeaveUseage(request.Type, personWithStaff.Id));

            Assert.Equal(expectedEmailed, actualEmailed);
        }
        public async Task <ActionResult> RejectRequest(int id)
        {
            try
            {
                Employee user = await _userManager.GetUserAsync(User);

                LeaveRequest leaveRequest = await _leaveRequestRepo.FindById(id);

                leaveRequest.Approved     = false;
                leaveRequest.ApprovedById = user.Id;
                leaveRequest.DateActioned = DateTime.Now;

                await _leaveRequestRepo.Update(leaveRequest);

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(RedirectToAction(nameof(Index)));
            }
        }
        /// <summary>
        /// Method to generate template body
        /// </summary>
        /// <param name="leaveRequest">LeaveRequest object</param>
        /// <returns>template emailBody as string</returns>
        public string EmailServiceTemplate(LeaveRequest leaveRequest)
        {
            var dateFormat = Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern;
            LeaveApplication leaveTemplate = new LeaveApplication();

            // Assigning Value in template page
            leaveTemplate.Session = new Dictionary <string, object>
            {
                { _stringConstant.FromDate, leaveRequest.FromDate.ToString(dateFormat) },
                { _stringConstant.EndDate, leaveRequest.EndDate.Value.ToString(dateFormat) },
                { _stringConstant.Reason, leaveRequest.Reason },
                { _stringConstant.Type, leaveRequest.Type.ToString() },
                { _stringConstant.Status, leaveRequest.Status.ToString() },
                { _stringConstant.ReJoinDate, leaveRequest.RejoinDate.Value.ToString(dateFormat) },
                { _stringConstant.CreatedOn, leaveRequest.CreatedOn.ToString(dateFormat) },
            };
            leaveTemplate.Initialize();
            var emailBody = leaveTemplate.TransformText();

            return(emailBody);
        }
        // GET: LeaveRequests/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            LeaveRequest leaveRequest = await db.LeaveRequests.FindAsync(id);

            ViewBag.AllLeaders  = Utils.Csv.GetLeaderAccount();
            ViewBag.AllLeaders2 = Utils.Csv.GetLeaderInfo();
            ViewBag.AllMembers  = Utils.Csv.GetMemberAccount();
            ViewBag.Type        = new int[3] {
                1, 2, 3
            };
            ViewBag.AllowCompensativeLeave = true;
            if (leaveRequest == null)
            {
                return(HttpNotFound());
            }
            return(View(leaveRequest));
        }
Exemplo n.º 12
0
 /// <summary>
 /// 新增请假单
 /// </summary>
 public AddLeaveRequest(LeaveRequest leaveRequest, bool ifSubmit, IVacation mockIVacation,
                        IAdjustRest mockIAdjustRest, ILeaveRequestDal mockILeaveRequestDal,
                        ILeaveRequestFlowDal mockILeaveRequestFlowDal,
                        IEmployeeDiyProcessDal mockIEmployeeDiyProcessDal,
                        IOverWork mockIOverWork, IOutApplication mockIOutApplication,
                        IPlanDutyDal mockIPlanDutyDal,
                        ILeaveRequestType mockILeaveRequestType, IEmployee mockIEmployee)
 {
     _LeaveRequest          = leaveRequest;
     _IfSubmit              = ifSubmit;
     _IVacationDal          = mockIVacation;
     _IAdjustRestDal        = mockIAdjustRest;
     _DalLeaveRequest       = mockILeaveRequestDal;
     _DalLeaveRequestFlow   = mockILeaveRequestFlowDal;
     _DalEmployeeDiyProcess = mockIEmployeeDiyProcessDal;
     _OverWorkDal           = mockIOverWork;
     _DalOutApplication     = mockIOutApplication;
     _DalPlanDutyDal        = mockIPlanDutyDal;
     _DalLeaveRequestType   = mockILeaveRequestType;
     _DalEmployee           = mockIEmployee;
 }
Exemplo n.º 13
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            ILeaveRequestHandler hr             = new HR();
            ILeaveRequestHandler projectManager = new ProjectManager();
            ILeaveRequestHandler superVisor     = new Supervisor();

            LeaveRequest leaveRequest01 = new LeaveRequest
            {
                Employee = "Steve", LeaveDays = 3
            };

            superVisor.HandleRequest(leaveRequest01.LeaveDays);
            LeaveRequest leaveRequest02 = new LeaveRequest
            {
                Employee  = "Stark",
                LeaveDays = 5
            };

            superVisor.HandleRequest(leaveRequest02.LeaveDays);
            LeaveRequest leaveRequest03 = new LeaveRequest
            {
                Employee  = "Peter",
                LeaveDays = 2
            };

            superVisor.HandleRequest(leaveRequest03.LeaveDays);
            //ProjectManager projectManager = new ProjectManager();
            //Supervisor supervisor = new Supervisor();

            //LeaveRequest leaveRequest = new LeaveRequest();
            //Console.WriteLine("Applying leave for 2 days");
            //leaveRequest.ApplyLeave(2);
            //Console.WriteLine("Applying leave for 3 days");
            //leaveRequest.ApplyLeave(3);
            //Console.WriteLine("Applying leave for 5 days");
            //leaveRequest.ApplyLeave(5);
            //Console.ReadLine();
        }
        public override void Initialize(bool isPostBack)
        {
            AttachViewEvent();

            GetDataSource();
            _ItsView.btnCancelText = "取消";
            _ItsView.btnOKText     = "确定";
            _ItsView.OperationType = "取消请假";

            _ItsView.LeaveRequestTypeSource = _ILeaveRequestTypeFacade.GetAllLeaveRequestType();
            _ItsView.ResultMessage          = string.Empty;

            LeaveRequest theDataToBind = _ILeaveRequestFacade.GetLeaveRequestByPKID(_LeaveRequestID);

            if (theDataToBind != null)
            {
                _ItsView.OperationID = theDataToBind.Account.Id;

                _ItsView.LeaveRequestID   = theDataToBind.PKID.ToString();
                _ItsView.EmployeeID       = theDataToBind.Account.Id.ToString();
                _ItsView.EmployeeName     = theDataToBind.Account.Name;
                _ItsView.Remark           = theDataToBind.Reason;
                _ItsView.LeaveRequestType = theDataToBind.LeaveRequestType;
                _ItsView.CostTime         = theDataToBind.CostTime.ToString();
                _ItsView.TimeSpan         = theDataToBind.FromDate + " ~ " + theDataToBind.ToDate;
            }

            if (!isPostBack && theDataToBind != null)
            {
                _ItsView.LeaveRequestItemList = theDataToBind.LeaveRequestItems;
            }

            if (!string.IsNullOrEmpty(Message))
            {
                _ItsView.ResultMessage = Message;
            }

            _ItsView.SetFormReadOnly = true;
            _ItsView.SetFormCancel   = true;
        }
        public async Task <BaseResponse> CreateLeave(LeaveRequest leaveRequest, SmtpRequest smtpRequest, string admin)
        {
            try
            {
                var getPendingId = (_globalCodesRepository.GetSingle(x => x.CodeName == "Pending").GlobalCodeId);
                var CreateLeave  = _mapper.Map <Leaves>(leaveRequest);
                CreateLeave.EmployeeId    = leaveRequest.EmployeeId;
                CreateLeave.LeaveType     = leaveRequest.LeaveType;
                CreateLeave.StartDate     = leaveRequest.StartDate;
                CreateLeave.EndDate       = leaveRequest.EndDate;
                CreateLeave.Reason        = leaveRequest.Reason;
                CreateLeave.NumberOfDays  = leaveRequest.NumberOfDays;
                CreateLeave.IsActive      = true;
                CreateLeave.CreatedOn     = DateTime.Now;
                CreateLeave.AppliedDate   = DateTime.Now;
                CreateLeave.RequestStatus = getPendingId;

                var data = _leavesRepository.Add(CreateLeave);

                if (data != null)
                {
                    var leaveTypeName = await _leavesRepository.GetLeaveRecord(data);

                    bool SendEmail = NotificationHelper.SendLeaveRequestEmail(leaveTypeName, smtpRequest, admin);
                    _response.Status  = true;
                    _response.Message = SendEmail? Constants.LEAVE_CREATED :Constants.EMAIL_ERROR;
                }
                else
                {
                    _response.Message = Constants.LEAVE_NOT_CREATED;
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
                _response.Status  = false;
                _response.Message = Constants.DEFAULT_ERROR_MSG;
            }
            return(_response);
        }
        private string AddWFTrans(LeaveRequest request, int?ManagerId, bool?backToEmp)
        {
            WfViewModel wf = new WfViewModel()
            {
                Source         = "Leave",
                SourceId       = request.TypeId,
                DocumentId     = request.Id,
                RequesterEmpId = request.EmpId,
                ApprovalStatus = request.ApprovalStatus,
                CreatedUser    = User.Identity.Name,
            };

            if (ManagerId != null)
            {
                wf.ManagerId = ManagerId;
            }
            else if (backToEmp != null)
            {
                wf.BackToEmployee = backToEmp.Value;
            }

            var wfTrans = _hrUnitOfWork.LeaveRepository.AddWorkFlow(wf, User.Identity.GetLanguage());

            request.WFlowId = wf.WFlowId;
            if (wfTrans == null && wf.WorkFlowStatus != "Success")
            {
                return(wf.WorkFlowStatus);
            }
            else if (wfTrans == null && wf.WorkFlowStatus == "Success")
            {
                request.ApprovalStatus = 6;
                return(wf.WorkFlowStatus);
            }
            else
            {
                _hrUnitOfWork.LeaveRepository.Add(wfTrans);
            }

            return("");
        }
Exemplo n.º 17
0
        // [Authorize(Policy = "EditRolePolicy")]
        public async Task <IActionResult> Edit(string Id)
        {
            int decryptedId;
            int y;

            if (int.TryParse(Id, out y))
            {
                decryptedId = y;
            }
            else
            {
                decryptedId = Convert.ToInt32(protector.Unprotect(Id));
            }

            if (decryptedId < 1)
            {
                return(RedirectToAction("Index"));
            }

            var employees = await employeeService.GetEmployees();

            var leaveTyes = await leaveTypeService.GetLeaveTypes();

            LeaveRequest leaveRequest = await leaveRequestService.GetLeaveRequest(decryptedId);

            LeaveRequestEditViewModel model = new LeaveRequestEditViewModel
            {
                Id                     = Id,
                ApprovalDate           = leaveRequest.ApprovalDate,
                EmployeeId             = leaveRequest.EmployeeId,
                RequestDate            = leaveRequest.RequestDate,
                ApprovedBy             = leaveRequest.ApprovedBy,
                LeaveTypeId            = leaveRequest.LeaveTypeId,
                LeveRequestEncryptedId = Id,
                EmployeeList           = employees,
                LeaveTypeList          = leaveTyes
            };

            return(View(model));
        }
Exemplo n.º 18
0
        public async Task <Game> LeaveAsync(string gameId, string token)
        {
            try
            {
                var request = new LeaveRequest
                {
                    GameId = gameId
                };

                var response = await _client.LeaveAsync(request, CreateHeader(token));

                return(ConvertState(response.State));
            }
            catch (RpcException ex)
            {
                throw JinrouExceptionMapper.Transform(ex);
            }
            catch
            {
                throw;
            }
        }
 public IActionResult EditLeaveRequest(int id, LeaveRequestForEdit request)
 {
     request.UpdatedDate = DateTime.Now;
     if (ModelState.IsValid)
     {
         request.UpdatedBy = Convert.ToInt32(GetSession().PersonId);
         request.IsActive  = true;
         LeaveRequest NewRequest = new LeaveRequest()
         {
             Id            = request.Id,
             AppliedDate   = request.AppliedDate,
             ApprovedBy    = request.ApprovedBy,
             ApprovedDays  = request.ApprovedDays,
             Available     = request.Available,
             CreatedBy     = request.CreatedBy,
             CreatedDate   = request.CreatedDate,
             EmployeeName  = request.EmployeeName,
             FromDate      = request.FromDate,
             ToDate        = request.ToDate,
             IsActive      = request.IsActive,
             LeaveType     = request.LeaveType,
             PersonId      = request.PersonId,
             Reason        = request.Reason,
             RequestedDays = request.RequestedDays,
             RowVersion    = request.RowVersion,
             Status        = request.Status,
             TenantId      = request.TenantId,
             TypeId        = request.TypeId,
             UpdatedBy     = request.UpdatedBy,
             UpdatedDate   = request.UpdatedDate
         };
         HttpResponseMessage response = _services.LeaveRequest.PostResponse(ApiUrl + "/api/LeaveRequest/" + id + "/Null", NewRequest);
         if (response.IsSuccessStatusCode == true)
         {
             return(View());
         }
     }
     return(PartialView("EditLeaveRequest", request));
 }
        public ActionResult Edit(LeaveRequest leaverequest)
        {
            if (ModelState.IsValid)
            {
                LeaveRequestsController request = new LeaveRequestsController();

                if (leaverequest.AcceptedFromDate.HasValue && leaverequest.AcceptedToDate.HasValue)
                {
                    CalculateNumOfDaysController c = new CalculateNumOfDaysController();
                    leaverequest.AcceptedNumOfDays = c.Get(leaverequest.AcceptedFromDate.Value, leaverequest.AcceptedToDate.Value);
                    leaverequest.Status            = "A";
                    leaverequest.AcceptedBy        = WebSecurity.GetUserId(User.Identity.Name);
                }


                var succ = request.PutLeaveRequest(leaverequest.ID, leaverequest);
                if (succ.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    if (User.IsInRole("HumanResources"))
                    {
                        return(RedirectToAction("PendingLeaveRequests"));
                    }
                    else
                    {
                        return(RedirectToAction("UserLeaveRequests"));
                    }
                }
                else
                {
                    ModelState.AddModelError("putError", succ.Content.ReadAsStringAsync().Result);
                    //ModelState.AddModelError("putError", new Exception("Κάτι πήγε στραβά.. Ελέγξτε τα στοιχεία και δοκιμάστε ξανά.."));
                }
            }

            GetDescriptionController descr = new GetDescriptionController();

            ViewBag.descr = descr;
            return(View(leaverequest));
        }
Exemplo n.º 21
0
        public bool DataBind(int leaveRequestTypeId)
        {
            LeaveRequest theDataToBind = _ILeaveRequestFacade.GetLeaveRequestByPKID(leaveRequestTypeId);

            if (theDataToBind != null)
            {
                _ItsView.LeaveRequestID       = theDataToBind.PKID.ToString();
                _ItsView.EmployeeID           = theDataToBind.Account.Id.ToString();
                _ItsView.EmployeeName         = theDataToBind.Account.Name;
                _ItsView.Remark               = theDataToBind.Reason;
                _ItsView.LeaveRequestType     = theDataToBind.LeaveRequestType;
                _ItsView.CostTime             = theDataToBind.CostTime.ToString();
                _ItsView.TimeSpan             = theDataToBind.FromDate + " ~ " + theDataToBind.ToDate;
                _ItsView.LeaveRequestItemList = theDataToBind.LeaveRequestItems;
                if (theDataToBind.IfAutoCancel)
                {
                    _ItsView.Remind = "注:当前请假单已有提交记录,如果再次编辑,系统将自动取消之前的所有流程,并以编辑后的信息为准重新进行“暂存”/“提交”操作。";
                }
                return(true);
            }
            return(false);
        }
 public IActionResult AddPastLeave(LeaveRequest request)
 {
     request.CreatedDate = DateTime.Now;
     request.AppliedDate = DateTime.Now;
     if (ModelState.IsValid)
     {
         request.CreatedBy = Convert.ToInt32(GetSession().PersonId);
         request.LeaveType = request.LeaveType + "(Past)";
         request.IsActive  = true;
         request.Id        = 0;
         HttpResponseMessage response = _services.LeaveRequest.PostResponse(ApiUrl + "/api/LeaveRequest/" + 0 + "/Past", request);
         if (response.IsSuccessStatusCode == true)
         {
             return(View());
         }
     }
     else
     {
         Response.StatusCode = (int)HttpStatusCode.BadRequest;
     }
     return(PartialView("AddPastLeave", request));
 }
Exemplo n.º 23
0
        private static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            LeaveRequest leaveRequest = new LeaveRequest()
            {
                EmployeeName = "Kishor",
                LeaveDays    = 10
            };

            ILeaveRequestHandler <LeaveRequest> supervisor = new SupervisorConcreate();
            ILeaveRequestHandler <LeaveRequest> manager    = new ProjectManagerConcreate();
            ILeaveRequestHandler <LeaveRequest> hr         = new HRConcreate();

            LeaveContext leaveContext = new LeaveContext();

            leaveContext
            .Register <LeaveRequest>(supervisor, manager)
            .Register <LeaveRequest>(manager, hr)
            .Register <LeaveRequest>(hr, null)
            .Run <LeaveRequest>(leaveRequest);
        }
Exemplo n.º 24
0
        public async Task <AddUpdateLeaveRequestResponse> AddLeaveRequest(LeaveRequest request)
        {
            try
            {
                var updateReq = await _leaveReqService.AddUpdateLeaveRequest(request);

                //todo: create an approval in starting state

                return(new AddUpdateLeaveRequestResponse()
                {
                    Success = true
                });
            }
            catch (Exception e)
            {
                return(new AddUpdateLeaveRequestResponse()
                {
                    Success = false,
                    ErrorMessage = e.Message
                });
            }
        }
Exemplo n.º 25
0
        // DELETE api/LeaveRequests/5
        public HttpResponseMessage DeleteLeaveRequest(int id)
        {
            LeaveRequest leaverequest = db.LeaveRequests.Find(id);

            if (leaverequest == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound));
            }

            db.LeaveRequests.Remove(leaverequest);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound));
            }

            return(Request.CreateResponse(HttpStatusCode.OK, leaverequest));
        }
Exemplo n.º 26
0
        public async Task <ActionResult <LeaveResponse> > RequestRest([FromBody] LeaveRequest request)
        {
            var stu_id = 3;//Int32.Parse(User.Identity.Name);

            var temp = _mapper.Map <LeaveEntity>(request);

            temp.student_id = stu_id;

            var ans = await LeaveAccessor.Create(temp);

            if (ans > 0)
            {
                var leavere = await LeaveAccessor.Find(ans);

                if (leavere != null)
                {
                    return(Ok(_mapper.Map <LeaveResponse>(leavere)));
                }
                return(Ok(-1));
            }
            return(Ok(-1));
        }
Exemplo n.º 27
0
        public IHttpActionResult DeleteLeave(DeleteRequest model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            if (model == null)
            {
                return(NotFound());
            }

            LeaveRequest request = hrUnitOfWork.LeaveRepository.Get(model.id);

            hrUnitOfWork.LeaveRepository.DeleteRequest(request, model.Language);
            var Errors = SaveChanges(model.Language);

            if (Errors.Count > 0)
            {
                return(StatusCode(HttpStatusCode.Forbidden));
            }
            return(Ok(Errors));
        }
Exemplo n.º 28
0
        public void ShouldNotCountRejectedLeaveRequests()
        {
            var pendingRequest = new LeaveRequest(new DateTime(2015, 5, 4), new DateTime(2015, 5, 5))
            {
                Approved = null
            };

            pendingRequest.Days.ShouldBe(2);
            var approvedRequest = new LeaveRequest(new DateTime(2015, 5, 4), new DateTime(2015, 5, 4))
            {
                Approved = true
            };

            approvedRequest.Days.ShouldBe(1);
            var rejectedRequest = new LeaveRequest(new DateTime(2015, 5, 4), new DateTime(2015, 5, 7))
            {
                Approved = false
            };

            rejectedRequest.Days.ShouldBe(4);
            LeaveService.TotalLeaveUsed(new[] { pendingRequest, approvedRequest, rejectedRequest }).ShouldBe(3);
        }
        /// <summary>
        /// 新增
        /// </summary>
        private void SubmitExecutEvent(object source, EventArgs e)
        {
            LeaveRequestValidater leaveRequestValidater = new LeaveRequestValidater(_ItsView);

            if (leaveRequestValidater.Vaildate())
            {
                try
                {
                    _ItsView.ResultMessage = string.Empty;
                    LeaveRequestDataCollector dataCollector = new LeaveRequestDataCollector(_ItsView);
                    LeaveRequest leaveRequest = new LeaveRequest();
                    dataCollector.CompleteTheObject(ref leaveRequest);
                    _ILeaveRequestFacade.SubmitLeaveRequest(leaveRequest);

                    GoToListPage();
                }
                catch (Exception ex)
                {
                    _ItsView.ResultMessage = ex.Message;
                }
            }
        }
Exemplo n.º 30
0
        public void SaveOrUpdate(LeaveRequest leaveRequest)
        {
            if (leaveRequest.Id == 0)
            {
                leaveRequest.Id = LeaveRequests.Count + 1;
                LeaveRequests.Add(leaveRequest);
            }
            else
            {
                foreach (LeaveRequest t in LeaveRequests)
                {
                    if (t.Id != leaveRequest.Id)
                    {
                        continue;
                    }

                    t.Leave      = leaveRequest.Leave;
                    t.Approval   = leaveRequest.Approval;
                    t.TotalCount = leaveRequest.TotalCount;
                }
            }
        }
Exemplo n.º 31
0
        protected override int RemovePeerFromGame(LitePeer peer, LeaveRequest leaveRequest)
        {
            int result = base.RemovePeerFromGame(peer, leaveRequest);

            if (this.IsDisposed)
            {
                return(result);
            }

            // If there are still peers left an UpdateGameStateOperation with the new
            // actor count will be send to the master server.
            // If there are no actors left the RoomCache will dispose this instance and a
            // RemoveGameStateOperation will be sent to the master.
            if (this.Actors.Count > 0)
            {
                var gamePeer = (GameClientPeer)peer;
                var peerId   = gamePeer.PeerId ?? string.Empty;
                this.UpdateGameStateOnMaster(null, null, null, null, null, peerId);
            }

            return(result);
        }