protected void submitHolidayRequest(object sender, EventArgs e) { DateTime startDate = startDateCalendar.SelectedDate; DateTime endDate = endDateCalendar.SelectedDate; int workingDays = GeneralUtils.CalculateWorkingDays(startDate, endDate); startDate = GeneralUtils.simplifyStartDate(startDate); endDate = GeneralUtils.simplifyEndDate(endDate); if (workingDays == 0) { displayHolidaySummary("You selected weekend days, no need for holiday allowance", GeneralUtils.DANGER_COLOR); return; } else if (workingDays > GeneralUtils.MAX_POSSIBLE_HOLIDAY) { displayHolidaySummary("Too many days selected, it exceeds the maximum allowance", GeneralUtils.DANGER_COLOR); return; } if (startDate.Year > DateTime.Now.Year || endDate.Year > DateTime.Now.Year) { displayHolidaySummary("Sorry, not accepting holiday requests for next year yet", GeneralUtils.DANGER_COLOR); return; } try { using (HBSModel _entity = new HBSModel()) { int userId = (int)Session["userId"]; HolidayRequest holidayRequest = new HolidayRequest() { StartDate = startDate, EndDate = endDate, UserID = userId, NumberOfDays = workingDays }; var usr = _entity.Users.Find(userId); if (usr.HolidayRequests.Where(x => x.StatusRequest.Status == GeneralUtils.APPROVED || x.StatusRequest.Status == GeneralUtils.PENDING) .Any(x => GeneralUtils.isOverlappingHoliday(x, holidayRequest))) { displayHolidaySummary("There is an overlap with your current pending or approved requests", GeneralUtils.DANGER_COLOR); return; } holidayRequest.RequestStatusID = _entity.StatusRequests .FirstOrDefault(status => status.Status == GeneralUtils.PENDING).ID; holidayRequest.ConstraintsBroken = new ConstraintChecking(usr, holidayRequest).getBrokenConstraints(); holidayRequest.DaysPeakTime = PrioritiseRequests .daysFallPeakTimesCount(holidayRequest.StartDate, holidayRequest.EndDate); _entity.HolidayRequests.Add(holidayRequest); _entity.SaveChanges(); Response.Redirect("/EmployeeHome?HolidayRequest=Success"); } } catch { Response.Write("Server encountered an issue while submitting your request"); } }
public void initializeRequestsList() { outstandingHolidaysListView.Items.Clear(); try { messageLabel.Visible = false; using (HBSModel _entity = new HBSModel()) { var prioritiseReqs = (from el in _entity.HolidayRequests where el.StatusRequest.Status == GeneralUtils.PENDING select new PriorityRequest() { Constraints = new BreakingConstraints() { AtLeastPercentage = el.ConstraintsBroken.AtLeastPercentage, ExceedsHolidayEntitlement = el.ConstraintsBroken.ExceedsHolidayEntitlement, HeadOrDeputy = el.ConstraintsBroken.HeadOrDeputy, ManagerOrSenior = el.ConstraintsBroken.ManagerOrSenior }, WorkingDays = el.NumberOfDays, DaysPeakTime = el.DaysPeakTime, EndDate = el.EndDate, ID = el.ID, RemainingDays = el.User.RemainingDays, StartDate = el.StartDate, InitialHolidayEntitlement = el.User.InitialHolidayEntitlement, TotalPeakDaysHoliday = el.User.TotalPeakDaysHoliday }).ToList(); var ordered = new PrioritiseRequests(prioritiseReqs).getPrioritisedRequests(); foreach (var request in ordered) { string[] arr = new string[4]; arr[0] = request.ID.ToString(); arr[1] = request.StartDate.ToShortDateString(); arr[2] = request.EndDate.ToShortDateString(); arr[3] = request.WorkingDays.ToString(); ListViewItem item = new ListViewItem(arr); if (PriorityRequest.isAnyConstraintBroken(request.Constraints)) { item.BackColor = Color.SandyBrown; } else { item.BackColor = Color.Lime; } outstandingHolidaysListView.Items.Add(item); } } } catch (Exception err) { DesktopAppUtils.popDefaultErrorMessageBox("Could not retrieve Item from DB \n" + err.Message); } }
public int HolidayRequest(DateTime startDate, DateTime endDate, int workingDays, string username, string password) { if (startDate > endDate || startDate < DateTime.Now.AddDays(2) || workingDays == 0) { return(-4); } try { using (HBSModel _entity = new HBSModel()) { var _user = _entity.Users.FirstOrDefault(x => x.Username == username); if (_user == null) { return(-1); } if (!GeneralUtils.VerifyPasswordHash(password, _user.Pwd, _user.PwdSalt) || _user.Role.RoleName == GeneralUtils.ADMIN_ROLE) { return(-2); } HolidayRequest holidayRequest = new HolidayRequest() { StartDate = startDate, EndDate = endDate, UserID = _user.id, NumberOfDays = workingDays }; holidayRequest.RequestStatusID = _entity.StatusRequests .FirstOrDefault(status => status.Status == GeneralUtils.PENDING).ID; holidayRequest.ConstraintsBroken = new ConstraintChecking(_user, holidayRequest).getBrokenConstraints(); holidayRequest.DaysPeakTime = PrioritiseRequests .daysFallPeakTimesCount(holidayRequest.StartDate, holidayRequest.EndDate); _entity.HolidayRequests.Add(holidayRequest); _entity.SaveChanges(); } } catch { return(-3); } return(1); }