/// <summary>
        /// Handles the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>Returns a Response object.</returns>
        public override Response Handle(SendDirectMessageRequest request)
        {
            var response = CreateTypedResponse();

            var session = _sessionProvider.GetSession();
            var info    = _userInformationDtoFactory.CreateUserInformationDto();
            var staff   = session.QueryOver <Staff>().Where(s => s.Key == info.StaffKey).SingleOrDefault();

            var fromAddress     = staff.DirectAddressCredential.DirectAddress.Address;
            var fromDisplayName = staff.StaffProfile.StaffName.Complete;

            var mailMessageBuilder = new MailMessageBuilder();

            mailMessageBuilder
            .Compose(fromAddress, fromDisplayName, request.ToDirectEmail, string.Empty, request.Subject, request.Body);

            if (request.AttachmentData != null)
            {
                mailMessageBuilder.WithAttachment(request.AttachmentData, request.AttachmentFileName);
            }

            _mailMessageSender.Send(mailMessageBuilder.MailMessage);

            return(response);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Handles the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>A <see cref="Agatha.Common.Response"/></returns>
        public override Response Handle(SendC32Request request)
        {
            SendC32Response response = CreateTypedResponse();

            Staff staff = Session.QueryOver <Staff> ().Where(s => s.Key == request.StaffKey).SingleOrDefault();

            string fromAddress     = staff.DirectAddressCredential.DirectAddress.Address;
            var    fromDisplayName = staff.StaffProfile.StaffName.Complete;

            long patientKey = request.PatientKey;

            // Build Normative C32 Document
            string c32 = _builder.BuildC32Xml(patientKey, false);

            // Build Html Document representing the C32
            string c32Html = CreateHtmlC32(c32);

            string body = request.Body;

            string toAddress = request.ToDirectEmail;

            var mailMessageBuilder = new MailMessageBuilder();

            mailMessageBuilder
            .Compose(fromAddress, fromDisplayName, toAddress, string.Empty, request.Subject, body)
            .WithAttachment(c32, string.Format("{0}{1}", DateTime.Now.Ticks, ".xml"))
            .WithAttachment(c32Html, "Preview.html");

            _mailMessageSender.Send(mailMessageBuilder.MailMessage);

            return(response);
        }
Ejemplo n.º 3
0
        protected override async Task <OperationMessageHandlerResult> OnHandle(IDirectoryUserNotificationMessage message)
        {
            var culture        = (message.Culture ?? "de-ch").ToLower();
            var messageBuilder = new MailMessageBuilder(
                new MailAddress("*****@*****.**", "Microsoft AIALA"),
                new MailAddress(message.Receiver),
                new CultureInfo(culture));

            switch (message)
            {
            case DirectoryAccountInvitedMessage invitedMessage:
            {
                var invitationLink = string.Format(_linkOptions.Value.ConfirmInvitation,
                                                   culture,
                                                   invitedMessage.Account.Id,
                                                   WebUtility.UrlEncode(invitedMessage.Account.Invitation.ConfirmationToken));

                messageBuilder.UseEncoding(Encoding.UTF8).CreateFromTemplate(new ConfirmInvitationMailTemplate(invitationLink));
                break;
            }

            case DirectoryRegistrationConfirmationRequiredMessage registrationMessage:
            {
                var registrationLink = string.Format(_linkOptions.Value.ConfirmRegistration,
                                                     culture,
                                                     registrationMessage.RegistrationId,
                                                     WebUtility.UrlEncode(registrationMessage.Token));

                messageBuilder.UseEncoding(Encoding.UTF8).CreateFromTemplate(new ConfirmRegistrationMailTemplate(registrationLink));
                break;
            }

            case DirectoryPasswordResetMessage passwordResetMessage:
                var resetPasswordLink = string.Format(_linkOptions.Value.ResetPassword,
                                                      culture,
                                                      WebUtility.UrlEncode(message.Receiver),
                                                      WebUtility.UrlEncode(passwordResetMessage.Token));

                messageBuilder.UseEncoding(Encoding.UTF8).CreateFromTemplate(new ResetPasswordMailTemplate(resetPasswordLink));
                break;

            default:
                return(OperationMessageHandlerResult.Succeed());
            }

            try
            {
                await _smtpMailService.SendMail(messageBuilder.Build());

                return(OperationMessageHandlerResult.Succeed());
            }
            catch (Exception ex)
            {
                return(OperationMessageHandlerResult.Fail(ex));
            }
        }
Ejemplo n.º 4
0
        protected void AddFilesToMessage(IEnumerable <FormFile> files, MailMessageBuilder builder)
        {
            foreach (var file in files)
            {
                var attachment = new Attachment(file.InputStream, file.FileName, file.ContentType);

                file.InputStream.Seek(0, SeekOrigin.Begin);
                builder.AddAttachment(attachment);
            }
        }
Ejemplo n.º 5
0
        public void Delete_Message()
        {
            var message = MailMessageBuilder.To(MailAddress)
                          .WithSubject($"PSC GmailClient Test for Delete {DateTime.Now}").Build();

            _client.Send(message);
            Thread.Sleep(WaitForMessageSentTimeout);

            var messagesSent = _client.GetMessages(new SubjectFilter(message.Subject));

            _client.Delete(messagesSent.First());
            _client.GetMessages(new SubjectFilter(message.Subject)).Should().BeEmpty();
        }
        public void TestNullMailMessages()
        {
            // Test incomplete mail builder
            MailMessage mail1 = new MailMessageBuilder().build();

            Assert.AreEqual(null, mail1);

            MailMessage mail2 = new MailMessageBuilder().from(null).to(null).subject(null).body(null).HTMLBody(true).build();

            Assert.AreEqual(null, mail2);

            MailMessage mail3 = new MailMessageBuilder().from("*****@*****.**").to("*****@*****.**").subject(null).body("Hello Test").HTMLBody(true).build();

            Assert.AreEqual(null, mail3);
        }
Ejemplo n.º 7
0
        public MailMessage Build(MailAddress recipient, string userName, string targetLink)
        {
            var template = GetTemplate();
            var content  = template
                           .Replace("{{User}}", userName)
                           .Replace("{{SignUpUrl}}", targetLink);
            var messageBuilder = new MailMessageBuilder();

            return(messageBuilder
                   .From(new MailAddress(MailConfig.DefaultSender.From, MailConfig.DefaultSender.Name))
                   .WithSender(new MailAddress(MailConfig.DefaultSender.From, MailConfig.DefaultSender.Name))
                   .WithSubject($"You are invited by {userName}")
                   .WithHtmlBody(content)
                   .AddRecipient(recipient)
                   .Build());
        }
Ejemplo n.º 8
0
        public async Task SendEmailAsync(string receiverEmail, string subject, string message)
        {
            var senderEmail = await _keyValue.GetValue("EmailHost");

            var senderEmailPassword = await _keyValue.GetValue("EmailPassword");

            var mail = new MailMessageBuilder().CreateNewMimeMessage(MailPriority.High)
                       .CreateSender(senderEmail)
                       .SetBody(message)
                       .SetSubject(subject)
                       .CreateReceiver(receiverEmail)
                       .Get();

            await new SmtpClientBuilder().SetUpConnection(senderEmail, senderEmailPassword)
            .Send(mail)
            .BuildAsync();
        }
        public MailMessage Build(MailAddress recipient)
        {
            var template              = GetTemplate();
            var messageBuilder        = new MailMessageBuilder();
            var mailMessageCollection = new MailAddressCollection()
            {
                recipient
            };

            return(messageBuilder
                   .From(new MailAddress(MailConfig.DefaultSender.From, MailConfig.DefaultSender.Name))
                   .WithSender(new MailAddress(MailConfig.DefaultSender.From, MailConfig.DefaultSender.Name))
                   .WithSubject("Password Reset Successful")
                   .WithHtmlBody(template)
                   .AddRecipients(mailMessageCollection)
                   .Build());
        }
        public void TestValidMailMessages()
        {
            // Test valid mail
            string from4     = "*****@*****.**";
            string to4       = "*****@*****.**";
            string subject4  = "Test Subject";
            string body4     = "Hello test";
            bool   htmlBody4 = true;

            MailMessage mail4 = new MailMessageBuilder().from(from4).to(to4).subject(subject4).body(body4).HTMLBody(htmlBody4).build();

            Assert.AreNotEqual(null, mail4);
            Assert.AreEqual(from4, mail4.From.Address);
            Assert.AreEqual(true, mail4.To.Contains(new MailAddress(to4)));
            Assert.AreEqual(subject4, mail4.Subject);
            Assert.AreEqual(body4, mail4.Body);
            Assert.AreEqual(htmlBody4, mail4.IsBodyHtml);
        }
Ejemplo n.º 11
0
        public MailMessage Build(string activationUrl, MailAddress recipient)
        {
            var template              = GetTemplate();
            var content               = template.Replace("{{PasswordResetUrl}}", activationUrl);
            var messageBuilder        = new MailMessageBuilder();
            var mailMessageCollection = new MailAddressCollection()
            {
                recipient
            };

            return(messageBuilder
                   .From(new MailAddress(MailConfig.DefaultSender.From, MailConfig.DefaultSender.Name))
                   .WithSender(new MailAddress(MailConfig.DefaultSender.From, MailConfig.DefaultSender.Name))
                   .WithSubject("Activate your Email")
                   .WithHtmlBody(content)
                   .AddRecipients(mailMessageCollection)
                   .Build());
        }
Ejemplo n.º 12
0
        public async Task <MailMessage> Build(ActivationMailData mailData, MailAddress recipient)
        {
            var template = await GetHtmlTemplateAsync();

            var content = template.Replace("{{ActivationUrl}}", mailData.ActivationUrl)
                          .Replace("{{Name}}", mailData.Name);
            var messageBuilder        = new MailMessageBuilder();
            var mailMessageCollection = new MailAddressCollection {
                recipient
            };

            return(messageBuilder
                   .From(new MailAddress(MailConfig.From, MailConfig.Name))
                   .WithSender(new MailAddress(MailConfig.From, MailConfig.Name))
                   .WithSubject("Activate your Account")
                   .WithHtmlBody(content)
                   .AddRecipients(mailMessageCollection)
                   .Build());
        }
Ejemplo n.º 13
0
        public async Task <MailMessage> Build(ForgotPasswordEmailDetails details, MailAddress recipient)
        {
            var template = await GetHtmlTemplateAsync();

            var content = template.Replace("{{PasswordResetUrl}}", details.PasswordResetUrl)
                          .Replace("{{Name}}", details.Name);
            var messageBuilder        = new MailMessageBuilder();
            var mailMessageCollection = new MailAddressCollection()
            {
                recipient
            };

            return(messageBuilder
                   .From(new MailAddress(MailConfig.From, MailConfig.Name))
                   .WithSender(new MailAddress(MailConfig.From, MailConfig.Name))
                   .WithSubject("You requested to reset your password")
                   .WithHtmlBody(content)
                   .AddRecipients(mailMessageCollection)
                   .Build());
        }
Ejemplo n.º 14
0
 public void SendInPlainTextMode(string[] to, Func <MailMessageBuilder, MailMessageBuilder> createMsg)
 {
     _client.SendInPlainTextMode(createMsg(MailMessageBuilder.To(to)).Build());
 }
Ejemplo n.º 15
0
 private IMailMessageModel GetTestMessage(string filePath)
 {
     return(MailMessageBuilder.To(MailAddress)
            .WithSubject($"PSC GmailClient Test {DateTime.Now}")
            .WithBody(RandomString(5)).WithAttachments(FileProvider.GetFileByName(filePath).PhysicalPath).Build());
 }
Ejemplo n.º 16
0
 private IMailMessageModel GetTestMessage()
 {
     return(MailMessageBuilder.To(MailAddress)
            .WithSubject($"PSC GmailClient Test {DateTime.Now}")
            .WithBody(RandomString(5)).Build());
 }
Ejemplo n.º 17
0
 private async Task SendEmail(IdentityUser user, MailMessageBuilder mailMessageBuilder)
 {
     await _mailingService.SendMailAsync(mailMessageBuilder.Body, mailMessageBuilder.Subject, user.Email);
 }
Ejemplo n.º 18
0
 public static MailMessage Default(MailMessageBuilder builder) => builder.Build();
Ejemplo n.º 19
0
 public MeetingController()
 {
     _store = new VMSStore();
     _mailMessageBuilder = new MailMessageBuilder();
 }
Ejemplo n.º 20
0
 public void Send(Func <MailMessageBuilder, MailMessageBuilder> createMsg, string[] to)
 {
     _client.Send(createMsg(MailMessageBuilder.To(to)).Build());
 }