Esempio n. 1
0
 public void Update(LeaveHistoryVM leavehistoryVM)
 {
     this.FromDate         = leavehistoryVM.FromDate;
     this.ToDate           = leavehistoryVM.ToDate;
     this.Reason           = leavehistoryVM.Reason;
     this.ApproverComments = leavehistoryVM.ApproverComments;
     this.Status           = leavehistoryVM.Status;
     this.UpdateDate       = DateTimeOffset.Now.LocalDateTime;
 }
Esempio n. 2
0
        public ActionResult Create(CreateLeaveRequestVM model)
        {
            try
            {
                var leaveTypes = _leaveTypeRepo.FindAll();

                var leaveTypesItems = leaveTypes.Select(q => new SelectListItem {
                    Text = q.Name, Value = q.Id.ToString()
                });

                model.LeaveTypes = leaveTypesItems;

                if (!ModelState.IsValid)
                {
                    return(View(model));
                }

                if (DateTime.Compare(model.StartDate, model.EndDate) > 0)
                {
                    ModelState.AddModelError("", "Start Date cannot be futher in the future than the end date");
                    return(View(model));
                }

                var employee = _userManager.GetUserAsync(User).Result;

                var allocation = _leaveAllocationRepo.GetLeaveAllocationByEmployeeAndType(employee.Id, model.LeaveTypeId);

                int daysRequested = (int)(model.EndDate.Date - model.StartDate.Date).TotalDays;

                if (daysRequested > allocation.NumberOfDays)
                {
                    ModelState.AddModelError("", "You dont have suficient days for this request");
                    return(View(model));
                }

                var leaveHistorymodel = new LeaveHistoryVM
                {
                    RequestingEmployeeId = employee.Id,
                    StartDate            = model.StartDate,
                    EndDate       = model.EndDate,
                    Approved      = null,
                    DateRequested = DateTime.Now,
                    LeaveTypeId   = model.LeaveTypeId
                };

                var leaveHistory = _mapper.Map <LeaveHistory>(leaveHistorymodel);

                var isSuccess = _leaveHistoryRepo.Create(leaveHistory);

                if (!isSuccess)
                {
                    ModelState.AddModelError("", "Something went wrong with submitting your record");
                    return(View(model));
                }

                return(RedirectToAction(nameof(Index), "Home"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", "Something went wrong");
                return(View(model));
            }
        }