Example #1
0
        public void GenerateRetryEmail(string ClientId)
        {
            try
            {
                log.Info("Generating Retry Email");
                var emailService   = new SMTPEmailService(MailSettings.SmtpSection().Network.Host);
                var overrideToList = MailSettings.EmailOverrideTo != null?MailSettings.EmailOverrideTo.ToList() : null;

                var payload = new EmailPayload
                {
                    FromEmailAddress = MailSettings.SmtpSection().From,
                    To = overrideToList != null && overrideToList.Count > 0 ? overrideToList : new List <string> {
                        Config.Instance.EmailTooManyRetriesTo
                    },
                    Subject    = Config.Instance.EmailTooManyRetriesSubject,
                    Body       = $"Retry count has exceeded {Config.Instance.EmailTooManyRetriesCount} from client {ClientId}.  Please review provided interface data.",
                    IsBodyHtml = true,
                };
                emailService.Send(payload);
            }
            catch (Exception e)
            {
                log.Error("Fail GenerateRetryEmail", e);
            }
        }
Example #2
0
        public void GenerateErrorMessageEmail(string Message)
        {
            try
            {
                log.Info("Generating ErrorMessage Email");
                var emailService   = new SMTPEmailService(MailSettings.SmtpSection().Network.Host);
                var overrideToList = MailSettings.EmailOverrideTo != null?MailSettings.EmailOverrideTo.ToList() : null;

                var payload = new EmailPayload
                {
                    FromEmailAddress = MailSettings.SmtpSection().From,
                    To = overrideToList.Count > 0 ? overrideToList : new List <string> {
                        Config.Instance.EmailErrorMessageTo
                    },
                    Subject    = "CusRelService Error",
                    Body       = Message,
                    IsBodyHtml = true,
                };
                emailService.Send(payload);
            }
            catch (Exception e)
            {
                log.Error("Fail ErrorMessage Email", e);
            }
        }
Example #3
0
        public async Task <ActionResult> Invite([FromBody] EmailPayload emailPayload)
        {
            string[] inviteScopes = { "User.Invite.All" };
            string   accessToken  = await _tokenAcquisition.GetAccessTokenForUserAsync(inviteScopes);

            GraphServiceClient graphClient = new GraphServiceClient(
                graphEndpoint,
                new DelegateAuthenticationProvider(async(requestMessage) => {
                requestMessage.Headers.Authorization =
                    new AuthenticationHeaderValue("Bearer", accessToken);
            })
                );
            var invitation = new Invitation
            {
                InvitedUserEmailAddress = emailPayload.Email,
                InviteRedirectUrl       = "https://redirect_guests_after_invitation_is_accepted",
                SendInvitationMessage   = true
            };

            try
            {
                invitation = await graphClient.Invitations.Request().AddAsync(invitation);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(Problem(ex.Message));
            }

            return(Ok());
        }
        public Result EmailTicketAssigned(Ticket ticket)
        {
            var result = new Result();

            if (ticket != null)
            {
                var userResult = servicesProxy.UserService.GetUser(ticket.Assignment.Employee.Username);

                if (userResult.OK && userResult.User != null && userResult.User.GetsNotificationOnAssignment && IsValidEmail(userResult.User.Email))
                {
                    string emailSettings = servicesProxy.SettingsService.GetSetting("EmailTicketAssigned").Setting.Value;
                    string emailCc       = Regex.Match(emailSettings, "CC:([^|]*)").Groups[1].Value;
                    string emailBcc      = Regex.Match(emailSettings, "BCC:([^|]*)").Groups[1].Value;
                    string emailSubject  = Regex.Match(emailSettings, "SUBJECT:([^|]*)").Groups[1].Value;
                    string emailBody     = Regex.Match(emailSettings, "BODY:([^|]*)").Groups[1].Value;

                    string[] overrideToList;

                    smtpSettings.TryGetValue("OVERRIDETO", out overrideToList);

                    try
                    {
                        var emailService = new SMTPEmailService(smtpSettings["HOST"].FirstOrDefault());

                        var payload = new EmailPayload
                        {
                            FromEmailAddress = smtpSettings["FROM"].FirstOrDefault(),
                            To = overrideToList != null && overrideToList.Length > 0 ? overrideToList.ToList() : new List <string> {
                                userResult.User.Email
                            },
                            Subject = emailSubject.Replace("{Ticket.Id}", ticket.Id.ToString()),
                            Body    = emailBody.
                                      Replace("{Ticket.Id}", ticket.Id.ToString()).
                                      Replace("{Ticket.Priority}", ticket.Priority.HasValue ? ticket.Priority.Value.ToString() : "no priority").
                                      Replace("<br />", "<br />\r\n"),
                            CC         = overrideToList != null && overrideToList.Length > 0 ? null : (!string.IsNullOrEmpty(emailCc) ? emailCc.Split(';').Select(a => a.Trim()).ToList() : null),
                            BCC        = overrideToList != null && overrideToList.Length > 0 ? null : (!string.IsNullOrEmpty(emailBcc) ? emailBcc.Split(';').Select(a => a.Trim()).ToList() : null),
                            IsBodyHtml = true,
                        };

                        emailService.Send(payload);
                    }
                    catch (Exception e)
                    {
                        result.SetFail(e);
                    }
                }
                else
                {
                    result.SetFail(string.Format("User {0} does not have a valid email or is not configured to receive notifications. Notification not sent.", ticket.Assignment.Employee.Username));
                }
            }

            return(result);
        }
        public Result EmailHighPriorityChange(Ticket Ticket)
        {
            var result = new Result();

            if (Ticket != null)
            {
                if (IsValidEmail(Ticket.Assignment.GroupContact.Email))
                {
                    var emailDeptChange = servicesProxy.SettingsService.GetSetting("EmailHighPriorityChange").Setting.Value;
                    var emailCc         = Regex.Match(emailDeptChange, "CC:([^|]*)").Groups[1].Value;
                    var emailBcc        = Regex.Match(emailDeptChange, "BCC:([^|]*)").Groups[1].Value;
                    var emailSubject    = Regex.Match(emailDeptChange, "Subject:([^|]*)").Groups[1].Value;
                    emailSubject = emailSubject.Replace("{Ticket.Id}", Ticket.Id.ToString());
                    var emailBody = Regex.Match(emailDeptChange, "Body:([^|]*)").Groups[1].Value;
                    emailBody = emailBody.Replace("{Ticket.Reasons}", Ticket.Reasons != null ? string.Join(", ", Ticket.Reasons.ToArray()) : "");
                    emailBody = emailBody.Replace("{Ticket.Id}", Ticket.Id.ToString());
                    emailBody = emailBody.Replace("{Ticket.Comments}", Ticket.Comments);
                    emailBody = emailBody.Replace("<br />", "<br />\r\n");

                    try
                    {
                        var emailService = new SMTPEmailService(smtpSettings["HOST"].FirstOrDefault());

                        string[] overrideToList;
                        smtpSettings.TryGetValue("OVERRIDETO", out overrideToList);

                        var payload = new EmailPayload
                        {
                            FromEmailAddress = smtpSettings["FROM"].FirstOrDefault(),
                            To = overrideToList != null && overrideToList.Length > 0 ? overrideToList.ToList() : new List <string> {
                                Ticket.Assignment.GroupContact.Email
                            },
                            Subject    = emailSubject,
                            Body       = emailBody,
                            CC         = overrideToList != null && overrideToList.Length > 0 ? null : (!string.IsNullOrEmpty(emailCc) ? emailCc.Split(';').Select(a => a.Trim()).ToList() : null),
                            BCC        = overrideToList != null && overrideToList.Length > 0 ? null : (!string.IsNullOrEmpty(emailBcc) ? emailBcc.Split(';').Select(a => a.Trim()).ToList() : null),
                            IsBodyHtml = true,
                        };

                        emailService.Send(payload);
                    }
                    catch (Exception e)
                    {
                        result.SetFail(e);
                    }
                }
                else
                {
                    result.SetFail(string.Format("User {0} does not have a valid email. Unable to send notification.", Ticket.Assignment.Employee.Username));
                }
            }

            return(result);
        }
Example #6
0
        private IActionResult SendMessageToBrocker <TMailjetEvent>(TMailjetEvent mailjetEvent) where TMailjetEvent : MailEvent
        {
            EmailPayload payload = null;

            if (!string.IsNullOrWhiteSpace(mailjetEvent.Payload))
            {
                var jsonOptions = new JsonSerializerOptions {
                    PropertyNameCaseInsensitive = true
                };
                payload = JsonSerializer.Deserialize <EmailPayload>(mailjetEvent.Payload, jsonOptions);
            }

            if (payload is { Trackable : true })
Example #7
0
        public async void ChangeEmail(string email, string idToken)
        {
            EmailPayload p = new EmailPayload()
            {
                email = email, idToken = idToken
            };
            string URL = "https://identitytoolkit.googleapis.com/v1/accounts:update?key=" + AuthKey;
            var    res = await client.Post(URL, p);

            if (res.IsSuccessStatusCode)
            {
                Stream m = await res.Content.ReadAsStreamAsync();

                Dictionary <string, object> data = await JsonSerializer.DeserializeAsync <Dictionary <string, object> >(m);
            }
            else
            {
                //todo
            }
        }
        /// <summary>
        /// Add Customer Contact to database, then send Customer Feedback email
        /// </summary>
        /// <returns></returns>
        public ResponseResult SendToCusRelEntity()
        {
            var result = new ResponseResult();

            try
            {
                var addCustomerResult = Repository.Context(requestState).AddCustomerContact(form);
                if (string.IsNullOrEmpty(requestState.FeedbackToEmail))
                {
                    result.OK         = true;
                    result.StatusCode = 200;
                }
                else if (addCustomerResult.OK)
                {
                    var smtp        = new SMTPEmailService();
                    var emailHeader = form.ActionEnum.Description().ToUpper();
                    var email       = new EmailPayload
                    {
                        FromEmailAddress = form.Contact.SmtpEmail,
                        To = new List <string> {
                            requestState.FeedbackToEmail
                        },
                        Subject = "AC Transit Public Customer Feedback " + emailHeader,
                        Body    = form.AsEmail(addCustomerResult.ID.ToString(CultureInfo.InvariantCulture), emailHeader),
                    };
                    smtp.Send(email);
                    result.OK         = true;
                    result.StatusCode = 200;
                }
            }
            catch (Exception e)
            {
                result = new ResponseResult(e)
                {
                    StatusCode = 500, OK = false
                };
            }
            return(result);
        }
Example #9
0
        public AccountDocument GetTransformedDocument(TradingAccountPayload payload, List <SyncFeedEntryLink> links)
        {
            AccountDocument    document       = new AccountDocument();
            tradingAccounttype tradingAccount = payload.TradingAccount;

            document.addresses = new AddressDocumentCollection();
            if (tradingAccount.postalAddresses != null && tradingAccount.postalAddresses != null)
            {
                foreach (postalAddresstype postalAddress in tradingAccount.postalAddresses)
                {
                    PostalAddressPayload postalAdressPayload = new PostalAddressPayload();
                    postalAdressPayload.PostalAddresstype = postalAddress;
                    postalAdressPayload.SyncUuid          = StringToGuid(postalAddress.uuid);
                    AddressDocument address = _postalAdressTransformation.GetTransformedDocument(postalAdressPayload, Helper.ReducePayloadPath(links));
                    document.addresses.Add(address);
                }
            }
            bool hasMainAdress = false;

            for (int index = 0; index < document.addresses.documents.Count; index++)
            {
                AddressDocument address = document.addresses.documents[index] as AddressDocument;
                if ((address.primaryaddress.Value != null) && (address.primaryaddress.Value.ToString().Equals("true", StringComparison.InvariantCultureIgnoreCase)))
                {
                    hasMainAdress = true;
                }
            }
            if ((!hasMainAdress) && (document.addresses.documents.Count > 0))
            {
                AddressDocument address = document.addresses.documents[0] as AddressDocument;
                address.primaryaddress.Value = "true";
            }
            if (String.IsNullOrEmpty(payload.LocalID))
            {
                document.CrmId = payload.SyncUuid.ToString();//
                document.Id    = GetLocalId(payload.SyncUuid);
            }
            else
            {
                document.Id = payload.LocalID;
            }
            document.currencyid.Value = tradingAccount.currency;
            document.emails           = new EmailsDocumentCollection();
            if (tradingAccount.emails != null && tradingAccount.emails != null)
            {
                foreach (emailtype email in tradingAccount.emails)
                {
                    EmailPayload emailPayload = new EmailPayload();
                    emailPayload.Emailtype = email;
                    emailPayload.SyncUuid  = StringToGuid(email.uuid);
                    EmailDocument emailDocument = _emailAdressTransformation.GetTransformedDocument(emailPayload, Helper.ReducePayloadPath(links));
                    document.emails.Add(emailDocument);
                }
            }
            document.name.Value = tradingAccount.name;
            // ????? document.onhold
            document.people = new PeopleDocumentCollection();
            if (tradingAccount.contacts != null && tradingAccount.contacts != null)
            {
                foreach (contacttype contact in tradingAccount.contacts)
                {
                    ContactPayload contactPayload = new ContactPayload();
                    contactPayload.Contacttype = contact;
                    contactPayload.SyncUuid    = StringToGuid(contact.uuid);
                    PersonDocument person = _contactTransformation.GetTransformedDocument(contactPayload, Helper.ReducePayloadPath(links));
                    document.people.Add(person);
                }
            }
            bool hasMainPerson = false;

            for (int index = 0; index < document.people.documents.Count; index++)
            {
                PersonDocument person = document.people.documents[index] as PersonDocument;
                if ((person.primaryperson.Value != null) && (person.primaryperson.Value.ToString().Equals("true", StringComparison.InvariantCultureIgnoreCase)))
                {
                    hasMainPerson = true;
                }
            }
            if ((!hasMainPerson) && (document.people.documents.Count > 0))
            {
                PersonDocument person = document.people.documents[0] as PersonDocument;
                person.primaryperson.Value = "true";
            }

            document.phones = new PhonesDocumentCollection();
            if (tradingAccount.phones != null && tradingAccount.phones != null)
            {
                foreach (phoneNumbertype phoneNumber in tradingAccount.phones)
                {
                    PhoneNumberPayload phoneNumberPayload = new PhoneNumberPayload();
                    phoneNumberPayload.PhoneNumbertype = phoneNumber;
                    //phoneNumberPayload.SyncUuid = GetUuid(phoneNumber.applicationID);
                    PhoneDocument phone = _phoneNumberTransformation.GetTransformedDocument(phoneNumberPayload, Helper.ReducePayloadPath(links));
                    document.phones.Add(phone);
                }
            }
            document.customerSupplierFlag.Value = tradingAccount.customerSupplierFlag;
            return(document);
        }
Example #10
0
        public async Task <EmailResponse> SendAsync(string title, string rawMessage, string htmlMessage, string[] recipients)
        {
            if (!string.IsNullOrWhiteSpace(title) &&
                (!string.IsNullOrWhiteSpace(rawMessage) || !string.IsNullOrWhiteSpace(htmlMessage)) &&
                recipients.AnyAndNotNull())
            {
                var to = new List <string>(recipients);

                var payload = new EmailPayload
                {
                    ApiKey  = ApiKey,
                    To      = to,
                    Sender  = Sender,
                    Subject = title,
                    Text    = rawMessage,
                    Html    = htmlMessage,
                    Headers = new List <EmailPayloadCustomHeader>
                    {
                        new EmailPayloadCustomHeader
                        {
                            Header = "Reply-To",
                            Value  = ReplyTo
                        }
                    }
                };

                using (var request = new HttpRequestMessage(HttpMethod.Post, "email/send"))
                {
                    request.Content = new StringContent(JsonConvert.SerializeObject(payload), Encoding.UTF8, "application/json");

                    using (var httpClient = new HttpClient()
                    {
                        BaseAddress = new Uri(Host)
                    })
                    {
                        var response = await httpClient.SendAsync(request);

                        var error = await response.Content.ReadAsStringAsync();

                        try
                        {
                            var status = response.EnsureSuccessStatusCode();
                        }
                        catch (Exception ex)
                        {
                            return(new EmailResponse
                            {
                                Message = ex.Message
                            });
                        }
                    }
                }

                return(new EmailResponse());
            }

            return(new EmailResponse
            {
                Message = "Pusta wiadomość nie będzie wysłana"
            });
        }