public BaseServiceMessage AddNewAnnualLeave(int employeeId, DateTime fromDate, DateTime toDate) { EmployeeDto employeeDto = _employeeService.GetEmployee(employeeId); if (employeeDto == null) { return new BaseServiceMessage() { WasSuccess = false, Message = "That Employee Id does not exist" } } ; List <DbContextFiles.EmployeeAnnualLeave> employeeAnnualLeaves = _annualLeaveRepository.GetAnnualLeave(employeeId, fromDate, toDate); // check annual leave isnt already booked if (employeeAnnualLeaves.Count > 0) { return new BaseServiceMessage() { WasSuccess = false, Message = "There is already annual leave booked within that date range" } } ; // process date range and create Db object List <DbContextFiles.EmployeeAnnualLeave> annualLeaveDates = new List <DbContextFiles.EmployeeAnnualLeave>(); foreach (DateTime day in EachDay(fromDate, toDate)) { if (day.DayOfWeek == DayOfWeek.Sunday && day.DayOfWeek == DayOfWeek.Saturday) { continue; } DbContextFiles.EmployeeAnnualLeave annualLeave = new DbContextFiles.EmployeeAnnualLeave(); annualLeave.EmployeeId = employeeDto.EmployeeId; annualLeave.AddedOnUtc = DateTime.UtcNow; annualLeave.AnnualLeaveDateOnUtc = day; annualLeave.IsHalfDay = false; annualLeaveDates.Add(annualLeave); } // update db return(_annualLeaveRepository.AddAnnualLeave(annualLeaveDates)); }
public BaseServiceMessage AddAnnualLeave(DbContextFiles.EmployeeAnnualLeave annualLeave) { Context.EmployeeAnnualLeaves.Add(annualLeave); bool saveDbChanges = SaveDbChanges(); if (saveDbChanges) { return new BaseServiceMessage() { WasSuccess = true } } ; return(new BaseServiceMessage() { WasSuccess = false, Message = "There was an error when trying to save to the DB" }); }
public AddAttendanceLogViewModel PopulateViewModel() { AddAttendanceLogViewModel model = new AddAttendanceLogViewModel(); AnnualLeaveService _annualLeaveService = new AnnualLeaveService(); List <EmployeeDto> employeeDtos = _employeeRepository.GetEmployees(); List <AttendanceLogItem> attendanceLogItems = new List <AttendanceLogItem>(); foreach (var e in employeeDtos) { // check if employee has annual leave booked today DateTime startDate = DateTime.UtcNow; DateTime endDate = DateTime.UtcNow; List <DbContextFiles.EmployeeAnnualLeave> employeeAnnualLeaves = _annualLeaveService.GetAnnualLeaveBooked(e.EmployeeId, startDate, endDate); int attendenceStatusIdToUse; AttendanceStatusDto dto = new AttendanceStatusDto(); if (employeeAnnualLeaves.Count == 0) { // no annual leave booked can default type to present dto = _attendanceStatusService.GetAttendanceStatus(EAttendanceStatus.Present); attendenceStatusIdToUse = dto?.AttendanceStatusId ?? 0; } else { DateTime today = DateTime.UtcNow.Date; DbContextFiles.EmployeeAnnualLeave employeeAnnualLeave = employeeAnnualLeaves.FirstOrDefault(x => DbFunctions.TruncateTime(x.AnnualLeaveDateOnUtc) == DbFunctions.TruncateTime(today)); if (employeeAnnualLeave == null) { continue; } if (employeeAnnualLeave.AnnualLeavePm == null) { continue; } if (employeeAnnualLeave.AnnualLeaveAm == null) { continue; } // todo need to write this really crap code i cant even stand to look at it but go not time to write this bool?f = false; bool isAm = false; bool isPm = false; if (employeeAnnualLeave.AnnualLeavePm == true) { isPm = true; } if (employeeAnnualLeave.AnnualLeaveAm == true) { isAm = true; } if (isPm == true && isAm == true) { dto = _attendanceStatusService.GetAttendanceStatus(EAttendanceStatus.AnnualLeave);// must be a full days AL } else if (isPm == true) { dto = _attendanceStatusService.GetAttendanceStatus(EAttendanceStatus.AnnualLeavePm); } else { dto = _attendanceStatusService.GetAttendanceStatus(EAttendanceStatus.AnnualLeaveAm); } attendenceStatusIdToUse = dto?.AttendanceStatusId ?? 0; } AttendanceLogItem n = new AttendanceLogItem() { EmployeeId = e.EmployeeId, EmployeeName = e.Firstname + " " + e.Surname, DateAttended = DateTime.UtcNow.Date, SelectedAttendanceStatusId = attendenceStatusIdToUse, SelectedStatus = dto }; attendanceLogItems.Add(n); } model.AttendanceLog = attendanceLogItems; return(model); }