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 static void AddRoles() { using (HBSModel _entity = new HBSModel()) { if (_entity.Roles.Count() < 2) { _entity.Roles.Add(new Role() { RoleName = "Head" }); _entity.Roles.Add(new Role() { RoleName = "Deputy Head" }); _entity.Roles.Add(new Role() { RoleName = "Manager" }); _entity.Roles.Add(new Role() { RoleName = "Apprentice" }); _entity.Roles.Add(new Role() { RoleName = "Senior" }); _entity.Roles.Add(new Role() { RoleName = "Junior" }); _entity.SaveChanges(); } } }
public static void AddDepartments() { using (HBSModel entity = new HBSModel()) { if (entity.Departments.Count() < 2) { entity.Departments.Add(new Department() { DepartmentName = "Engineering" }); entity.Departments.Add(new Department() { DepartmentName = "Plumbing" }); entity.Departments.Add(new Department() { DepartmentName = "Roofing" }); entity.Departments.Add(new Department() { DepartmentName = "Carpentry" }); entity.Departments.Add(new Department() { DepartmentName = "Bricklaying" }); entity.Departments.Add(new Department() { DepartmentName = "Office" }); entity.SaveChanges(); } } }
public static void RegisterAdmin() { using (HBSModel _entity = new HBSModel()) { if (_entity.Users.Any(x => x.Username == GeneralUtils.ADMIN_ROLE)) { return; } Role role = new Role() { RoleName = GeneralUtils.ADMIN_ROLE }; Department department = new Department() { DepartmentName = "Management" }; User admin = new User(); admin.Username = GeneralUtils.ADMIN_ROLE; byte[] passwordHash, passwordSalt; GeneralUtils.CreatePasswordHash("Test123!", out passwordHash, out passwordSalt); admin.Pwd = passwordHash; admin.PwdSalt = passwordSalt; admin.RoleID = role.ID; admin.DepartmentID = department.ID; _entity.Users.Add(admin); role.Users.Add(admin); department.Users.Add(admin); _entity.Roles.Add(role); _entity.Departments.Add(department); _entity.SaveChanges(); } }
private void btn_details_Click(object sender, EventArgs e) { usernameErrorLabel.Visible = false; phoneErrorLabel.Visible = false; bool noErrors = true; try { if (String.IsNullOrEmpty(_selectedUser.Username)) { throw new Exception("No User selected"); } if (String.IsNullOrEmpty(tb_username.Text) || (tb_username.Text.Length < 6)) { usernameErrorLabel.Visible = true; noErrors = false; } if (!String.IsNullOrEmpty(tb_phoneNumber.Text)) { if (!tb_phoneNumber.ValidInput()) { phoneErrorLabel.Text = "The phone number entered is not in a valid format"; phoneErrorLabel.Visible = true; noErrors = false; } } if (noErrors) { using (HBSModel _entity = new HBSModel()) { var _user = _entity.Users.FirstOrDefault(user => user.Username == _selectedUser.Username); _user.Username = tb_username.Text; _user.RoleID = _entity.Roles.SingleOrDefault(role => role.RoleName == cb_roles.SelectedItem.ToString()).ID; _user.DepartmentID = _entity.Departments.SingleOrDefault(role => role.DepartmentName == cb_departments.SelectedItem.ToString()).ID; _user.StartDate = dp_edit.Value.Date; _user.PhoneNumber = tb_phoneNumber.Text; _selectedUser = _user; _entity.SaveChanges(); } initializeUserList(); initalizeUserInputs(); } } catch (Exception err) { DesktopAppUtils.popDefaultErrorMessageBox("Error:\n" + err.Message); } }
private void declineHolidayRequest() { int selIndex = outstandingHolidaysListView.SelectedIndices[0]; ListViewItem item = outstandingHolidaysListView.Items[selIndex]; using (HBSModel entity = new HBSModel()) { var request = entity.HolidayRequests.Find(Convert.ToInt32(item.SubItems[0].Text)); request.RequestStatusID = entity.StatusRequests.FirstOrDefault(x => x.Status == GeneralUtils.DECLINED).ID; entity.SaveChanges(); } messageLabel.Visible = true; messageLabel.Text = "Request " + item.SubItems[0].Text + " Declined"; messageLabel.BackColor = Color.DarkRed; outstandingHolidaysListView.Items.RemoveAt(selIndex); }
private void approveHolidayRequest() { int selIndex = outstandingHolidaysListView.SelectedIndices[0]; ListViewItem item = outstandingHolidaysListView.Items[selIndex]; using (HBSModel entity = new HBSModel()) { var request = entity.HolidayRequests.Find(Convert.ToInt32(item.SubItems[0].Text)); request.User.RemainingDays = request.User.RemainingDays - request.NumberOfDays; request.RequestStatusID = entity.StatusRequests.FirstOrDefault(x => x.Status == GeneralUtils.APPROVED).ID; entity.SaveChanges(); } messageLabel.Visible = true; messageLabel.Text = "Request " + item.SubItems[0].Text + " Approved"; messageLabel.BackColor = Color.Green; outstandingHolidaysListView.Items.RemoveAt(selIndex); }
public void ConfirmSuggestion(DateTime startDate, DateTime endDate) { messageLabel.Text = "Request ID " + selectedItem.SubItems[0].Text + " was sent back for approval"; messageLabel.BackColor = Color.DarkOrange; messageLabel.Visible = true; using (HBSModel entity = new HBSModel()) { var request = entity.HolidayRequests.Find(Convert.ToInt32(selectedItem.SubItems[0].Text)); request.RequestStatusID = entity.StatusRequests.FirstOrDefault(x => x.Status == GeneralUtils.CHANGED).ID; request.StartDate = startDate; request.EndDate = endDate; entity.SaveChanges(); } selectedItem = null; outstandingHolidaysListView.Items.RemoveAt(currentlySelectedIndex); UC_Suggestions.Instance.Hide(); initializeConstraintsLabels(); }
private void btn_password_Click(object sender, EventArgs e) { confirmPasswordErrorLabel.Visible = false; passwordErrorLabel.Visible = false; bool noErrors = true; try { if (String.IsNullOrEmpty(_selectedUser.Username)) { throw new Exception("No User selected"); } if (tb_password.Text != tb_repeat_password.Text) { confirmPasswordErrorLabel.Visible = true; noErrors = false; } if (!GeneralUtils.checkPasswordComplexity(tb_password.Text)) { passwordErrorLabel.Visible = true; noErrors = false; } if (noErrors) { using (HBSModel _entity = new HBSModel()) { var _user = _entity.Users.FirstOrDefault(user => user.Username == _selectedUser.Username); byte[] passwordHash, passwordSalt; GeneralUtils.CreatePasswordHash(tb_password.Text, out passwordHash, out passwordSalt); _user.Pwd = passwordHash; _user.PwdSalt = passwordSalt; _entity.SaveChanges(); MessageBox.Show("Password Updated", "Update", MessageBoxButtons.OK, MessageBoxIcon.Information); initalizeUserInputs(); } } } catch (Exception ex) { DesktopAppUtils.popDefaultErrorMessageBox("Error:\n" + ex.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); }
private void btn_delete_Click(object sender, EventArgs e) { try { int selIndex = lv_users.SelectedIndices[0]; ListViewItem item = lv_users.Items[selIndex]; if (MessageBox.Show("Are you sure you want to delete this record?", "Confirm deletion", MessageBoxButtons.YesNo) == DialogResult.Yes) { using (HBSModel _entity = new HBSModel()) { User userDelete = _entity.Users.Find(Convert.ToInt32(item.SubItems[0].Text)); _entity.Users.Remove(userDelete); _entity.SaveChanges(); } initializeUserList(); } } catch (Exception ex) { DesktopAppUtils.popDefaultErrorMessageBox("Could not complete delete operation. Ensure to select a user.\n" + ex.Message); } }
public static void RegisterUsers() { using (HBSModel _entity = new HBSModel()) { Role role = new Role() { RoleName = "junior" }; Department department = new Department() { DepartmentName = "Construction" }; List <string> users = new List <String>(); users.Add("madalin"); users.Add("cristian"); users.Add("gabriel"); foreach (string username in users) { User newUser = new User(); newUser.Username = username; byte[] passwordHash, passwordSalt; GeneralUtils.CreatePasswordHash("password", out passwordHash, out passwordSalt); newUser.Pwd = passwordHash; newUser.PwdSalt = passwordSalt; newUser.StartDate = DateTime.Now.Date; newUser.RoleID = role.ID; newUser.DepartmentID = department.ID; _entity.Users.Add(newUser); role.Users.Add(newUser); department.Users.Add(newUser); } _entity.Roles.Add(role); _entity.Departments.Add(department); _entity.SaveChanges(); } }
private void btn_register_employee_Click(object sender, EventArgs e) { try { hideErrors(); bool noErrors = true; if (String.IsNullOrEmpty(tb_username.Text) || (tb_username.Text.Length < 6)) { usernameErrorLabel.Text = "Username must be above 6 characters"; usernameErrorLabel.Visible = true; noErrors = false; } if (String.IsNullOrEmpty(tb_password.Text)) { passwordErrorLabel.Text = "Password field must be filled"; passwordErrorLabel.Visible = true; noErrors = false; } if (tb_password.Text != tb_repeat_password.Text) { confirmPasswordErrorLabel.Text = "Passwords do not match"; confirmPasswordErrorLabel.Visible = true; noErrors = false; } if (!GeneralUtils.checkPasswordComplexity(tb_password.Text)) { passwordErrorLabel.Text = "Password does not match the required complexity"; passwordErrorLabel.Visible = true; noErrors = false; } if (cb_departments.SelectedIndex == -1) { departmentErrorLabel.Text = "Please select department"; departmentErrorLabel.Visible = true; noErrors = false; } if (cb_roles.SelectedIndex == -1) { roleErrorLabel.Text = "Please select role"; roleErrorLabel.Visible = true; noErrors = false; } if (!String.IsNullOrEmpty(tb_phoneNumber.Text)) { if (!tb_phoneNumber.ValidInput()) { phoneNumberErrorLabel.Text = "The phone number entered is not in a valid format"; phoneNumberErrorLabel.Visible = true; noErrors = false; } } if (noErrors) { using (HBSModel _entity = new HBSModel()) { User newUser = new User { Username = tb_username.Text }; var isAlreadyRegistered = _entity.Users.FirstOrDefault(x => x.Username == newUser.Username); if (isAlreadyRegistered != null) { usernameErrorLabel.Text = "Username already registered"; usernameErrorLabel.Visible = true; } // hash the password GeneralUtils.CreatePasswordHash(tb_password.Text, out byte[] passwordHash, out byte[] passwordSalt); newUser.Pwd = passwordHash; newUser.PwdSalt = passwordSalt; newUser.PhoneNumber = tb_phoneNumber.Text; // Find ID of selected role and department try { var _selectedDepartment = _entity.Departments.First(dpt => dpt.DepartmentName == cb_departments.SelectedItem.ToString()); var _selectedRole = _entity.Roles.First(role => role.RoleName == cb_roles.SelectedItem.ToString()); newUser.DepartmentID = _selectedDepartment.ID; newUser.RoleID = _selectedRole.ID; } catch (Exception ex) { DesktopAppUtils.popDefaultErrorMessageBox("Please select valid role and department:\n" + ex.Message); return; } newUser.PhoneNumber = tb_phoneNumber.Text; // get date and make it to datetime2 newUser.StartDate = dp_add_employee.Value.Date; // calculate remaining days newUser.RemainingDays = GeneralUtils.CalculateHolidayAllowanceOnRegistration(dp_add_employee.Value.Date); try { _entity.Users.Add(newUser); _entity.SaveChanges(); if (MessageBox.Show("Employee successfully registered", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information) == DialogResult.OK) { tb_username.Text = ""; tb_password.Text = ""; tb_repeat_password.Text = ""; cb_departments.SelectedIndex = -1; cb_roles.SelectedIndex = -1; dp_add_employee.Value = DateTime.Now; dp_add_employee.Format = DateTimePickerFormat.Custom; } } catch { DesktopAppUtils.popDefaultErrorMessageBox("Something went wrong, please try again later"); } } } } catch (Exception ex) { DesktopAppUtils.popDefaultErrorMessageBox("Registration Error: \n" + ex.Message); } }
public static void AddHolidayRequests() { using (HBSModel _entity = new HBSModel()) { if (_entity.HolidayRequests.Count() < 2) { _entity.HolidayRequests.Add(new HolidayRequest() { StartDate = new DateTime(2020, 8, 7), EndDate = new DateTime(2020, 8, 21), NumberOfDays = GeneralUtils.CalculateWorkingDays(new DateTime(2020, 8, 7), new DateTime(2020, 8, 21)), RequestStatusID = 1, UserID = 5, ConstraintsBroken = new ConstraintsBroken() }); _entity.HolidayRequests.Add(new HolidayRequest() { StartDate = new DateTime(2020, 4, 6), EndDate = new DateTime(2020, 4, 15), NumberOfDays = GeneralUtils.CalculateWorkingDays(new DateTime(2020, 4, 6), new DateTime(2020, 4, 15)), RequestStatusID = 1, UserID = 7, ConstraintsBroken = new ConstraintsBroken() }); _entity.HolidayRequests.Add(new HolidayRequest() { StartDate = new DateTime(2020, 8, 7), EndDate = new DateTime(2020, 8, 21), NumberOfDays = GeneralUtils.CalculateWorkingDays(new DateTime(2020, 8, 7), new DateTime(2020, 8, 21)), RequestStatusID = 1, UserID = 8, ConstraintsBroken = new ConstraintsBroken() }); _entity.HolidayRequests.Add(new HolidayRequest() { StartDate = new DateTime(2020, 8, 7), EndDate = new DateTime(2020, 8, 21), NumberOfDays = GeneralUtils.CalculateWorkingDays(new DateTime(2020, 8, 7), new DateTime(2020, 8, 21)), RequestStatusID = 1, UserID = 11, ConstraintsBroken = new ConstraintsBroken() }); _entity.HolidayRequests.Add(new HolidayRequest() { StartDate = new DateTime(2020, 7, 7), EndDate = new DateTime(2020, 7, 17), NumberOfDays = GeneralUtils.CalculateWorkingDays(new DateTime(2020, 7, 7), new DateTime(2020, 7, 17)), RequestStatusID = 1, UserID = 12, ConstraintsBroken = new ConstraintsBroken() }); _entity.HolidayRequests.Add(new HolidayRequest() { StartDate = new DateTime(2020, 8, 2), EndDate = new DateTime(2020, 8, 13), NumberOfDays = GeneralUtils.CalculateWorkingDays(new DateTime(2020, 8, 2), new DateTime(2020, 8, 13)), RequestStatusID = 1, UserID = 13, ConstraintsBroken = new ConstraintsBroken() }); _entity.HolidayRequests.Add(new HolidayRequest() { StartDate = new DateTime(2020, 9, 7), EndDate = new DateTime(2020, 9, 11), NumberOfDays = GeneralUtils.CalculateWorkingDays(new DateTime(2020, 9, 7), new DateTime(2020, 9, 11)), RequestStatusID = 1, UserID = 6, ConstraintsBroken = new ConstraintsBroken() }); _entity.HolidayRequests.Add(new HolidayRequest() { StartDate = new DateTime(2020, 10, 12), EndDate = new DateTime(2020, 10, 21), NumberOfDays = GeneralUtils.CalculateWorkingDays(new DateTime(2020, 10, 12), new DateTime(2020, 10, 21)), RequestStatusID = 1, UserID = 9, ConstraintsBroken = new ConstraintsBroken() }); _entity.SaveChanges(); } } }
public static void CreateUsers() { using (HBSModel _entity = new HBSModel()) { if (_entity.Users.Count() < 2) { byte[] passwordHash, passwordSalt; GeneralUtils.CreatePasswordHash("password", out passwordHash, out passwordSalt); _entity.Users.Add(new User() { Username = "******", Pwd = passwordHash, PwdSalt = passwordSalt, StartDate = new DateTime(2020, 1, 1), RemainingDays = GeneralUtils.CalculateHolidayAllowanceOnRegistration(new DateTime(2020, 1, 1)), RoleID = 3, DepartmentID = 3 }); _entity.Users.Add(new User() { Username = "******", Pwd = passwordHash, PwdSalt = passwordSalt, StartDate = new DateTime(2010, 1, 1), RemainingDays = GeneralUtils.CalculateHolidayAllowanceOnRegistration(new DateTime(2010, 1, 1)), RoleID = 4, DepartmentID = 3 }); _entity.Users.Add(new User() { Username = "******", Pwd = passwordHash, PwdSalt = passwordSalt, StartDate = new DateTime(2019, 1, 1), RemainingDays = GeneralUtils.CalculateHolidayAllowanceOnRegistration(new DateTime(2019, 1, 1)), RoleID = 6, DepartmentID = 3 }); _entity.Users.Add(new User() { Username = "******", Pwd = passwordHash, PwdSalt = passwordSalt, StartDate = new DateTime(2018, 5, 5), RemainingDays = GeneralUtils.CalculateHolidayAllowanceOnRegistration(new DateTime(2018, 5, 5)), RoleID = 7, DepartmentID = 3 }); _entity.Users.Add(new User() { Username = "******", Pwd = passwordHash, PwdSalt = passwordSalt, StartDate = new DateTime(2019, 6, 6), RemainingDays = GeneralUtils.CalculateHolidayAllowanceOnRegistration(new DateTime(2019, 6, 6)), RoleID = 8, DepartmentID = 3 }); _entity.Users.Add(new User() { Username = "******", Pwd = passwordHash, PwdSalt = passwordSalt, StartDate = new DateTime(2019, 2, 2), RemainingDays = GeneralUtils.CalculateHolidayAllowanceOnRegistration(new DateTime(2019, 2, 2)), RoleID = 5, DepartmentID = 3 }); _entity.Users.Add(new User() { Username = "******", Pwd = passwordHash, PwdSalt = passwordSalt, StartDate = new DateTime(2017, 3, 3), RemainingDays = GeneralUtils.CalculateHolidayAllowanceOnRegistration(new DateTime(2017, 3, 3)), RoleID = 7, DepartmentID = 3 }); _entity.Users.Add(new User() { Username = "******", Pwd = passwordHash, PwdSalt = passwordSalt, StartDate = new DateTime(2019, 9, 9), RemainingDays = GeneralUtils.CalculateHolidayAllowanceOnRegistration(new DateTime(2019, 9, 9)), RoleID = 6, DepartmentID = 3 }); _entity.Users.Add(new User() { Username = "******", Pwd = passwordHash, PwdSalt = passwordSalt, StartDate = new DateTime(2012, 6, 6), RemainingDays = GeneralUtils.CalculateHolidayAllowanceOnRegistration(new DateTime(2012, 6, 6)), RoleID = 5, DepartmentID = 3 }); _entity.SaveChanges(); } } }