コード例 #1
0
ファイル: LetterPrintCommand.cs プロジェクト: kiquenet/B4F
        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;
        }
コード例 #2
0
ファイル: LetterPrintCommand.cs プロジェクト: kiquenet/B4F
        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);
            }
        }
コード例 #3
0
ファイル: LoginsAdapter.cs プロジェクト: kiquenet/B4F
        private void deleteLogin(IDalSession session, LoginPerson loginPerson)
        {
            if (loginPerson.Login.UserName != string.Empty)
                SecurityManager.DeleteUser(loginPerson.Login.UserName);

            session.Delete(loginPerson.Login);
        }
コード例 #4
0
ファイル: LoginsAdapter.cs プロジェクト: kiquenet/B4F
        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);
            }
        }
コード例 #5
0
ファイル: LoginsAdapter.cs プロジェクト: kiquenet/B4F
        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);
        }