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; }
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)); } }