public EmailService() { WebUrl = SPContext.Current.Web.Url; _emailTemplateDAL = new EmailTemplateDAL(WebUrl); _employeeDAL = new EmployeeInfoDAL(WebUrl); _changeShiftManagementDAL = new ChangeShiftManagementDAL(WebUrl); _notOvertimeMangementDAL = new NotOvertimeManagementDAL(WebUrl); _shiftTimeDAL = new ShiftTimeDAL(WebUrl); _sendMailActivity = new SendEmailActivity(); }
private void SendEmail(string webUrl, int changeshiftItemId, string emailKey, string approverFullName) { SendEmailActivity sendMailActity = new SendEmailActivity(); Thread thread = new Thread(delegate() { var _emailTemplateDAL = new EmailTemplateDAL(webUrl); var _employeeDAL = new EmployeeInfoDAL(webUrl); var _shiftTimeDAL = new ShiftTimeDAL(webUrl); var _sendMailActivity = new SendEmailActivity(); var changeShiftManagementItem = _changeShiftManagementDAL.GetByID(changeshiftItemId); var changeshiftRequestMailItem = _emailTemplateDAL.GetByKey(emailKey); if (changeshiftRequestMailItem != null && changeShiftManagementItem != null) { var employee = _employeeDAL.GetByID(changeShiftManagementItem.Requester.LookupId); if (employee != null && !string.IsNullOrEmpty(employee.Email)) { var shiftTimeList = _shiftTimeDAL.GetShiftTimes(); string emailBody = HTTPUtility.HtmlDecode(changeshiftRequestMailItem.MailBody); var fromShiftItem = shiftTimeList.Where(x => x.ID == changeShiftManagementItem.FromShift.LookupId).FirstOrDefault(); var toShiftItem = shiftTimeList.Where(x => x.ID == changeShiftManagementItem.ToShift.LookupId).FirstOrDefault(); //lookup email string link = $"{webUrl}/{StringConstant.WebPageLinks.ChangeShiftMember}"; if (employee.EmployeePosition.LookupId == (int)StringConstant.EmployeePosition.Administrator) { link = $"{webUrl}/{StringConstant.WebPageLinks.ChangeShiftAdmin}"; } if (employee.EmployeePosition.LookupId == (int)StringConstant.EmployeePosition.DepartmentHead) { link = $"{webUrl}/{StringConstant.WebPageLinks.ChangeShiftManager}"; } emailBody = string.Format(emailBody, employee.FullName, changeShiftManagementItem.Requester.LookupValue, changeShiftManagementItem.FromDate.ToString(StringConstant.DateFormatddMMyyyy2), changeShiftManagementItem.ToDate.ToString(StringConstant.DateFormatddMMyyyy2), changeShiftManagementItem.Reason, fromShiftItem.Code, toShiftItem.Code, changeShiftManagementItem.Comment, approverFullName); emailBody = emailBody.Replace("#link", link); _sendMailActivity.SendMail(webUrl, changeshiftRequestMailItem.MailSubject, employee.Email, true, false, emailBody); } } }); thread.IsBackground = true; thread.Start(); }
public void SendEmail(string webUrl, int notOvertimeItemId, string emailKey, string approverName) { Thread thread = new Thread(delegate () { var _emailTemplateDAL = new EmailTemplateDAL(webUrl); var _employeeDAL = new EmployeeInfoDAL(webUrl); var _shiftTimeDAL = new ShiftTimeDAL(webUrl); var _sendMailActivity = new SendEmailActivity(); var notOvertimeRequestMailItem = _emailTemplateDAL.GetByKey(emailKey); var notOvertimeManagementItem = _notOvertimeManagementDAL.GetByID(notOvertimeItemId); if (notOvertimeRequestMailItem != null && notOvertimeManagementItem != null) { var employee = _employeeDAL.GetByID(notOvertimeManagementItem.Requester.LookupId); if (employee != null && !string.IsNullOrEmpty(employee.Email)) { string emailBody = HTTPUtility.HtmlDecode(notOvertimeRequestMailItem.MailBody); //lookup email string link = $"{webUrl}/{StringConstant.WebPageLinks.LeaveOfAbsenceMember}"; if (employee.EmployeePosition.LookupId == (int)StringConstant.EmployeePosition.Administrator) { link = $"{webUrl}/{StringConstant.WebPageLinks.LeaveOfAbsenceAdmin}"; } if (employee.EmployeePosition.LookupId == (int)StringConstant.EmployeePosition.DepartmentHead) { link = $"{webUrl}/{StringConstant.WebPageLinks.LeaveOfAbsenceManager}"; } emailBody = string.Format(emailBody, employee.FullName, notOvertimeManagementItem.Requester.LookupValue, notOvertimeManagementItem.Date.ToString(StringConstant.DateFormatddMMyyyy2), notOvertimeManagementItem.Reason, notOvertimeManagementItem.Comment, approverName); emailBody = emailBody.Replace("#link", link); _sendMailActivity.SendMail(webUrl, notOvertimeRequestMailItem.MailSubject, employee.Email, true, false, emailBody); } } }); thread.IsBackground = true; thread.Start(); }
public ShiftTimeService() { _shiftTimeDAL = new ShiftTimeDAL(SPContext.Current.Web.Url); }
public void ImportExcel() { ExcelShiftsOfDepartment excelShiftsOfDepartment = ReadExcelShiftData(); excelShiftsOfDepartment.DepartmentId = 2; //HR excelShiftsOfDepartment.Location = 2; excelShiftsOfDepartment.Month = 7; excelShiftsOfDepartment.Year = 2017; Dictionary <string, int> duplicatedEmployees = ValidateDuplicatedData(excelShiftsOfDepartment); string siteUrl = "http://rbvhspdev01:81/"; ShiftManagementDAL _shiftManagementDAL = new ShiftManagementDAL(siteUrl); ShiftManagementDetailDAL _shiftManagementDetailDAL = new ShiftManagementDetailDAL(siteUrl); List <ShiftManagement> shiftManagements = _shiftManagementDAL.GetByMonthYearDepartment(excelShiftsOfDepartment.Month, excelShiftsOfDepartment.Year, excelShiftsOfDepartment.DepartmentId, excelShiftsOfDepartment.Location); List <ShiftManagementDetail> shiftManagementDetails = new List <ShiftManagementDetail>(); if (shiftManagements != null && shiftManagements.Count > 0) { shiftManagementDetails = _shiftManagementDetailDAL.GetByShiftManagementID(shiftManagements[0].ID); } EmployeeInfoDAL _employeeInfoDAL = new EmployeeInfoDAL(siteUrl); List <EmployeeInfo> employeesOfDepartment = _employeeInfoDAL.GetByLocationAndDepartment(2, excelShiftsOfDepartment.DepartmentId, true, 4, StringConstant.EmployeeInfoList.EmployeeIDField); if (shiftManagementDetails != null && shiftManagementDetails.Count > 0) { foreach (var employeeShift in excelShiftsOfDepartment.EmployeeShifts) { EmployeeInfo employeeInfo = employeesOfDepartment.Where(e => e.EmployeeID == employeeShift.EmployeeID).FirstOrDefault(); if (employeeInfo != null) { employeeShift.EmployeeLookupID = employeeInfo.ID; } } List <int> employeeLookupIds = excelShiftsOfDepartment.EmployeeShifts.Select(e => e.EmployeeLookupID).ToList(); shiftManagementDetails = shiftManagementDetails.Where(e => employeeLookupIds.Contains(e.Employee.LookupId)).ToList(); } foreach (ExcelEmployeeShift excelEmployeeShift in excelShiftsOfDepartment.EmployeeShifts) { ShiftManagementDetail shiftManagementDetail = shiftManagementDetails.Where(e => e.Employee.LookupId == excelEmployeeShift.EmployeeLookupID).FirstOrDefault(); if (shiftManagementDetail == null) { shiftManagementDetail = new ShiftManagementDetail(); EmployeeInfo employeeInfo = employeesOfDepartment.Where(e => e.EmployeeID == excelEmployeeShift.EmployeeID).FirstOrDefault(); shiftManagementDetail.Employee = new LookupItem() { LookupId = employeeInfo.ID, LookupValue = employeeInfo.FullName }; shiftManagementDetails.Add(shiftManagementDetail); } ShiftTimeDAL _shiftTimeDAL = new ShiftTimeDAL(siteUrl); List <ShiftTime> shiftTimes = _shiftTimeDAL.GetAll(); for (int i = 0; i < 11; i++) { ShiftTime shiftTime = shiftTimes.Where(e => e.Code.ToUpper() == excelEmployeeShift.ShiftCodes[i].ToUpper()).FirstOrDefault(); if (shiftTime != null) { Type type = typeof(ShiftManagementDetail); PropertyInfo shiftApprovalInfo = type.GetProperty(string.Format("ShiftTime{0}Approval", i + 21)); object shiftApprovalValue = shiftApprovalInfo.GetValue(shiftManagementDetail, null); if (shiftApprovalValue != null && Convert.ToBoolean(shiftApprovalValue) == false) { PropertyInfo shiftInfo = type.GetProperty(string.Format("ShiftTime{0}", i + 21)); LookupItem shiftValue = shiftInfo.GetValue(shiftManagementDetail, null) as LookupItem; if (shiftValue == null) { shiftValue = new LookupItem(); } shiftValue.LookupId = shiftTime.ID; shiftValue.LookupValue = shiftTime.Code; } } } for (int i = 11; i < 31; i++) { ShiftTime shiftTime = shiftTimes.Where(e => e.Code.ToUpper() == excelEmployeeShift.ShiftCodes[i].ToUpper()).FirstOrDefault(); if (shiftTime != null) { Type type = typeof(ShiftManagementDetail); PropertyInfo shiftApprovalInfo = type.GetProperty(string.Format("ShiftTime{0}Approval", i - 10)); object shiftApprovalValue = shiftApprovalInfo.GetValue(shiftManagementDetail, null); if (shiftApprovalValue != null && Convert.ToBoolean(shiftApprovalValue) == false) { PropertyInfo shiftInfo = type.GetProperty(string.Format("ShiftTime{0}", i - 10)); LookupItem shiftValue = shiftInfo.GetValue(shiftManagementDetail, null) as LookupItem; if (shiftValue == null) { shiftValue = new LookupItem(); } shiftValue.LookupId = shiftTime.ID; shiftValue.LookupValue = shiftTime.Code; } } } } int shiftId = 0; if (shiftManagements == null || shiftManagements.Count == 0) { Biz.Models.ShiftManagement shiftManagement = new Biz.Models.ShiftManagement(); shiftManagement.Department = new LookupItem() { LookupId = excelShiftsOfDepartment.DepartmentId, LookupValue = excelShiftsOfDepartment.DepartmentId.ToString() }; shiftManagement.Location = new LookupItem() { LookupId = excelShiftsOfDepartment.Location, LookupValue = excelShiftsOfDepartment.Location.ToString() }; shiftManagement.Month = excelShiftsOfDepartment.Month; shiftManagement.Year = excelShiftsOfDepartment.Year; EmployeeInfo requester = _employeeInfoDAL.GetByADAccount(122); shiftManagement.Requester = new LookupItem() { LookupId = requester.ID, LookupValue = requester.FullName }; EmployeeInfo approvedBy = _employeeInfoDAL.GetByPositionDepartment(StringConstant.EmployeePosition.DepartmentHead, excelShiftsOfDepartment.DepartmentId, excelShiftsOfDepartment.Location).FirstOrDefault(); shiftManagement.ApprovedBy = new User() { ID = approvedBy.ADAccount.ID, UserName = approvedBy.ADAccount.UserName, FullName = approvedBy.FullName, IsGroup = false }; shiftId = _shiftManagementDAL.SaveOrUpdate(shiftManagement); } else { shiftId = shiftManagements[0].ID; } if (shiftId > 0) { foreach (ShiftManagementDetail shiftManagementDetail in shiftManagementDetails) { shiftManagementDetail.ShiftManagementID = new LookupItem() { LookupId = shiftId, LookupValue = shiftId.ToString() }; int shiftDetailId = _shiftManagementDetailDAL.SaveOrUpdate(shiftManagementDetail); } } }