public RemarkDto GetRemarkById(int MstRemarkId) { var data = _remarkService.GetRemarkById(MstRemarkId); var redata = Mapper.Map <RemarkDto>(data); return(redata); }
private TempMailNotification ProsesMailNotificationBody(TemporaryDto tempData, TempWorkflowDocumentInput input) { var bodyMail = new StringBuilder(); var rc = new TempMailNotification(); var settingData = _settingService.GetSetting().ToList(); var vehTypeBenefit = settingData.Where(x => x.SETTING_GROUP == "VEHICLE_TYPE" && x.SETTING_NAME == "BENEFIT").FirstOrDefault().MST_SETTING_ID; var vendorData = _vendorService.GetByShortName(tempData.VENDOR_NAME); var vendorEmail = vendorData == null ? string.Empty : vendorData.EMAIL_ADDRESS; var vendorName = vendorData == null ? "Vendor" : vendorData.VENDOR_NAME; var isBenefit = tempData.VEHICLE_TYPE == vehTypeBenefit.ToString() ? true : false; var webRootUrl = ConfigurationManager.AppSettings["WebRootUrl"]; var typeEnv = ConfigurationManager.AppSettings["Environment"]; var serverIntranet = ConfigurationManager.AppSettings["ServerIntranet"]; var employeeData = _employeeService.GetEmployeeById(tempData.EMPLOYEE_ID); var creatorData = _employeeService.GetEmployeeById(tempData.EMPLOYEE_ID_CREATOR); var fleetApprovalData = _employeeService.GetEmployeeById(tempData.EMPLOYEE_ID_FLEET_APPROVAL); var employeeDataEmail = employeeData == null ? string.Empty : employeeData.EMAIL_ADDRESS; var creatorDataEmail = creatorData == null ? string.Empty : creatorData.EMAIL_ADDRESS; var fleetApprovalDataEmail = fleetApprovalData == null ? string.Empty : fleetApprovalData.EMAIL_ADDRESS; var employeeDataName = employeeData == null ? string.Empty : employeeData.FORMAL_NAME; var creatorDataName = creatorData == null ? string.Empty : creatorData.FORMAL_NAME; var fleetApprovalDataName = fleetApprovalData == null ? string.Empty : fleetApprovalData.FORMAL_NAME; var hrList = string.Empty; var fleetList = string.Empty; var hrEmailList = new List <string>(); var fleetEmailList = new List <string>(); var hrRole = settingData.Where(x => x.SETTING_GROUP == EnumHelper.GetDescription(Enums.SettingGroup.UserRole) && x.SETTING_VALUE.Contains("HR")).FirstOrDefault().SETTING_VALUE; var fleetRole = settingData.Where(x => x.SETTING_GROUP == EnumHelper.GetDescription(Enums.SettingGroup.UserRole) && x.SETTING_VALUE.Contains("FLEET")).FirstOrDefault().SETTING_VALUE; var hrQuery = "SELECT 'PMI\\' + sAMAccountName AS sAMAccountName FROM OPENQUERY(ADSI, 'SELECT employeeID, sAMAccountName, displayName, name, givenName, whenCreated, whenChanged, SN, manager, distinguishedName, info FROM ''LDAP://DC=PMINTL,DC=NET'' WHERE memberOf = ''CN = " + hrRole + ", OU = ID, OU = Security, OU = IMDL Managed Groups, OU = Global, OU = Users & Workstations, DC = PMINTL, DC = NET''') "; var fleetQuery = "SELECT 'PMI\\' + sAMAccountName AS sAMAccountName FROM OPENQUERY(ADSI, 'SELECT employeeID, sAMAccountName, displayName, name, givenName, whenCreated, whenChanged, SN, manager, distinguishedName, info FROM ''LDAP://DC=PMINTL,DC=NET'' WHERE memberOf = ''CN = " + fleetRole + ", OU = ID, OU = Security, OU = IMDL Managed Groups, OU = Global, OU = Users & Workstations, DC = PMINTL, DC = NET''') "; if (typeEnv == "VTI") { hrQuery = "SELECT 'PMI\\' + LOGIN AS LOGIN FROM LOGIN_FOR_VTI WHERE AD_GROUP = '" + hrRole + "'"; fleetQuery = "SELECT 'PMI\\' + LOGIN AS LOGIN FROM LOGIN_FOR_VTI WHERE AD_GROUP = '" + fleetRole + "'"; } EntityConnectionStringBuilder e = new EntityConnectionStringBuilder(ConfigurationManager.ConnectionStrings["FMSEntities"].ConnectionString); string connectionString = e.ProviderConnectionString; SqlConnection con = new SqlConnection(connectionString); con.Open(); SqlCommand query = new SqlCommand(hrQuery, con); SqlDataReader reader = query.ExecuteReader(); while (reader.Read()) { var hrLogin = "******" + reader[0].ToString() + "',"; hrList += hrLogin; } hrList = hrList.TrimEnd(','); query = new SqlCommand(fleetQuery, con); reader = query.ExecuteReader(); while (reader.Read()) { var fleetLogin = "******" + reader[0].ToString() + "',"; fleetList += fleetLogin; } fleetList = fleetList.TrimEnd(','); var hrQueryEmail = "SELECT EMAIL FROM " + serverIntranet + ".[dbo].[tbl_ADSI_User] WHERE FULL_NAME IN (" + hrList + ")"; var fleetQueryEmail = "SELECT EMAIL FROM " + serverIntranet + ".[dbo].[tbl_ADSI_User] WHERE FULL_NAME IN (" + fleetList + ")"; if (typeEnv == "VTI") { hrQueryEmail = "SELECT EMAIL FROM EMAIL_FOR_VTI WHERE FULL_NAME IN (" + hrList + ")"; fleetQueryEmail = "SELECT EMAIL FROM EMAIL_FOR_VTI WHERE FULL_NAME IN (" + fleetList + ")"; } query = new SqlCommand(hrQueryEmail, con); reader = query.ExecuteReader(); while (reader.Read()) { hrEmailList.Add(reader[0].ToString()); } query = new SqlCommand(fleetQueryEmail, con); reader = query.ExecuteReader(); while (reader.Read()) { fleetEmailList.Add(reader[0].ToString()); } reader.Close(); con.Close(); switch (input.ActionType) { case Enums.ActionType.Submit: //if submit from FLEET for wtc if (tempData.CREATED_BY == input.UserId && !isBenefit) { rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Vendor Information Temporary Car"; bodyMail.Append("Dear " + vendorName + ",<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("You have new car request. Please check attached file<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Thanks<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Regards,<br />"); bodyMail.AppendLine(); bodyMail.Append("Fleet Team"); bodyMail.AppendLine(); //if vendor exists if (!string.IsNullOrEmpty(vendorEmail)) { foreach (var item in input.Attachments) { rc.Attachments.Add(item); } rc.To.Add(vendorEmail); } foreach (var item in fleetEmailList) { rc.CC.Add(item); } rc.CC.Add(employeeDataEmail); } //if submit from HR for benefit if (tempData.CREATED_BY == input.UserId && isBenefit) { rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Temporary Car Request"; bodyMail.Append("Dear Fleet Team,<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("new temporary car has been recorded as " + tempData.DOCUMENT_NUMBER_TEMP + "<br />"); bodyMail.AppendLine(); bodyMail.Append("Please submit detail vehicle information <a href='" + webRootUrl + "/TraTemporary/Edit/" + tempData.TRA_TEMPORARY_ID + "?isPersonalDashboard=False" + "'>HERE</a><br /><br />"); bodyMail.AppendLine(); bodyMail.Append("For any assistance please contact " + creatorDataName + "<br />"); bodyMail.AppendLine(); bodyMail.Append("Thanks<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Regards,<br />"); bodyMail.AppendLine(); bodyMail.Append("HR Team"); bodyMail.AppendLine(); foreach (var item in fleetEmailList) { rc.To.Add(item); } foreach (var item in hrEmailList) { rc.CC.Add(item); } rc.CC.Add(employeeDataEmail); } rc.IsCCExist = true; break; case Enums.ActionType.Approve: //if Fleet Approve for benefit if (input.UserRole == Enums.UserRole.Fleet && isBenefit) { rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Vendor Information Temporary Car"; bodyMail.Append("Dear " + vendorName + ",<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("You have new car request. Please check attached file<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Thanks<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Regards,<br />"); bodyMail.AppendLine(); bodyMail.Append("Fleet Team"); bodyMail.AppendLine(); //if vendor exists if (!string.IsNullOrEmpty(vendorEmail)) { foreach (var item in input.Attachments) { rc.Attachments.Add(item); } rc.To.Add(vendorEmail); } rc.To.Add(creatorDataEmail); foreach (var item in fleetEmailList) { rc.CC.Add(item); } rc.CC.Add(employeeDataEmail); } rc.IsCCExist = true; break; case Enums.ActionType.Reject: //if Fleet Reject Benefit if (input.UserRole == Enums.UserRole.Fleet && isBenefit) { rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Temporary Car Request"; bodyMail.Append("Dear " + creatorDataName + ",<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Your temporary car request " + tempData.DOCUMENT_NUMBER_TEMP + " has been rejected by " + fleetApprovalDataName + " for below reason : " + _remarkService.GetRemarkById(input.Comment.Value).REMARK + "<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Please revised and re-submit your request <a href='" + webRootUrl + "/TraTemporary/Edit/" + tempData.TRA_TEMPORARY_ID + "?isPersonalDashboard=False" + "'>HERE</a><br />"); bodyMail.AppendLine(); bodyMail.Append("Thanks<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Regards,<br />"); bodyMail.AppendLine(); bodyMail.Append("Fleet Team"); bodyMail.AppendLine(); rc.To.Add(creatorDataEmail); foreach (var item in fleetEmailList) { rc.CC.Add(item); } rc.CC.Add(employeeDataEmail); } rc.IsCCExist = true; break; case Enums.ActionType.Completed: rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Completed Document"; bodyMail.Append("Dear " + creatorDataName + ",<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Your temporary car request " + tempData.DOCUMENT_NUMBER_TEMP + " has been completed by system<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Click <a href='" + webRootUrl + "/TraTemporary/Detail/" + tempData.TRA_TEMPORARY_ID + "?isPersonalDashboard=True" + "'>HERE</a> to monitor your request<br />"); bodyMail.AppendLine(); bodyMail.Append("Thanks<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Regards,<br />"); bodyMail.AppendLine(); bodyMail.Append("Fleet Team"); bodyMail.AppendLine(); rc.To.Add(creatorDataEmail); rc.CC.Add(employeeDataEmail); rc.CC.Add(fleetApprovalDataEmail); rc.IsCCExist = true; break; case Enums.ActionType.Cancel: rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Cancelled Document"; bodyMail.Append("Dear " + employeeDataName + ",<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Your temporary car request " + tempData.DOCUMENT_NUMBER_TEMP + " has been cancelled by " + creatorDataName + "<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Click <a href='" + webRootUrl + "/TraTemporary/Detail/" + tempData.TRA_TEMPORARY_ID + "?isPersonalDashboard=True" + "'>HERE</a> to monitor your request<br />"); bodyMail.AppendLine(); bodyMail.Append("Thanks<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Regards,<br />"); bodyMail.AppendLine(); bodyMail.Append("Fleet Team"); bodyMail.AppendLine(); rc.To.Add(employeeDataEmail); rc.CC.Add(creatorDataEmail); foreach (var item in fleetEmailList) { rc.CC.Add(item); } rc.IsCCExist = true; break; } rc.Body = bodyMail.ToString(); return(rc); }