private DataSet buildDataSet(LoginPerson loginPerson) { if (string.IsNullOrEmpty(loginPerson.Login.UserName)) throw new ApplicationException("User name is empty."); DataSet ds = new DataSet(); ds.Tables.Add(EnumerableExtensions.Singleton(loginPerson) .Select(p => new { p.AddressFirstLine, p.AddressSecondLine, p.Address.StreetAddressLine, p.Address.CityAddressLine, p.Address.CountryAddressLine, PrintCount = 0 }) .ToDataTable("ContactHeaderInfo")); ds.Tables.Add(EnumerableExtensions.Singleton(loginPerson) .Select(p => new { p.PersonType, p.DearSirForm, p.Email, LoginUserName = p.Login.UserName, p.AssetManager.CompanyName, p.AccountNumbers }) .ToDataTable("LetterLoginName")); return ds; }
public void PrintLetter(string userName, LoginPerson loginPerson) { try { int managementCompanyId = loginPerson.AssetManager.Key; reportExecutionWrapper.SetReportName(reportCompanies[managementCompanyId].ReportTemplateName); DataSet ds = buildDataSet(loginPerson); string pdfFileName = string.Format(@"{0}\{1}_{2}_{3}.pdf", reportCompanies[managementCompanyId].FullPdfSubfolders[loginPerson.PdfSubfolder], loginPerson.ShortNameAlphaCharsOnly, loginPerson.PersonKey, loginPerson.PdfSubfolder.Substring(0, 1)); reportExecutionWrapper.AddParameter("ShowLogo"); string[] paramValues = new string[] { reportCompanies[managementCompanyId].ShowLogoByDefault.ToString() }; reportExecutionWrapper.Run(ds, pdfFileName, paramValues); } catch (Exception ex) { throw new ApplicationException("Error generating PDF letter.", ex); } }
private void deleteLogin(IDalSession session, LoginPerson loginPerson) { if (loginPerson.Login.UserName != string.Empty) SecurityManager.DeleteUser(loginPerson.Login.UserName); session.Delete(loginPerson.Login); }
internal void SetPassword(IDalSession session, LoginPerson loginPerson, PasswordEmailType passwordEmailType) { loginPerson.AssertHasEmail(); string password = SecurityManager.GeneratePassword(passwordLength); SecurityManager.SetPassword(loginPerson.Login.UserName, password); setPasswordSent(session, loginPerson.Login, true); try { SendPasswordEmail(loginPerson, password, passwordEmailType); } catch (Exception ex) { setPasswordSent(session, loginPerson.Login, false); throw new ApplicationException("Error sending e-mail after password was (re)set.", ex); } }
internal void SendPasswordEmail(LoginPerson loginPerson, string password, PasswordEmailType passwordEmailType) { string clientWebsiteUrl = (loginPerson.AssetManager.StichtingDetails.ClientWebsiteUrl ?? "").TrimEnd('/'); if (string.IsNullOrEmpty(clientWebsiteUrl)) throw new ApplicationException("Client Website URL not known."); string body = passwordEmailTemplate.Replace("<%DearSirForm%>", loginPerson.DearSirForm) .Replace("<%LoginNameEnding%>", loginPerson.Login.UserName.Substring(loginPerson.Login.UserName.Length - 3)) .Replace("<%Password%>", password) .Replace("<%ClientWebsiteUrl%>", clientWebsiteUrl); body = ApplicationLayer.Utility.ShowOptionalTag(body, "passwordEmailType-firstTime", passwordEmailType == PasswordEmailType.FirstTime); body = ApplicationLayer.Utility.ShowOptionalTag(body, "passwordEmailType-reset", passwordEmailType == PasswordEmailType.Reset); body = ApplicationLayer.Utility.ShowOptionalTag(body, "passwordEmailType-changedByUser", passwordEmailType == PasswordEmailType.ChangedByUser); body = ApplicationLayer.Utility.ShowOptionalTag(body, "passwordEmailType-not-changedByUser", passwordEmailType != PasswordEmailType.ChangedByUser); body = ApplicationLayer.Utility.ShowOptionalTag(body, "loginType-customer", loginPerson.Login.LoginType == LoginTypes.Customer); body = ApplicationLayer.Utility.ShowOptionalTag(body, "loginType-remisierEmployee", loginPerson.Login.LoginType == LoginTypes.RemisierEmployee); MailMessage message = new MailMessage(); loginPerson.AssertHasEmail(); string testRecipients = ConfigurationManager.AppSettings.Get("TestEmailRecipients"); message.To.Add(testRecipients == null ? loginPerson.Email : testRecipients); message.Subject = "Paerel portefeuille"; message.Body = body; message.IsBodyHtml = true; SmtpClient client = new SmtpClient(); client.Send(message); }