Esempio n. 1
0
        public void Send(
            ClaimsPrincipal us,                      // User From
            string Subject,                          // Subject
            string Mailto,                           // User target name
            string UserEmail,                        // User target email
            string CallBack,                         // Link CallBack
            string NotificationTitle,                // Email content or descriptions
            string Description,                      // Description
            NotificationInboxStatus notifStatus,     // Notif Status
            Activities activity,                     // Activity Status,
            string Attachments               = null, // Attachment,
            string EmailTemplate             = null, // Template,
            Dictionary <string, string> Data = null
            )
        {
            try
            {
                if (!_config.GetConfigAsBool("notif.enabled"))
                {
                    throw new InvalidOperationException("Notification mail is currently disabled");
                }

                var user = _userHelper.GetUser(us);
                if (Data == null)
                {
                    Data = new Dictionary <string, string>()
                    {
                        { "Name", Mailto },
                        { "NotificationTitle", NotificationTitle },
                        { "CallbackUrl", CallBack },
                        { "Description", Description },
                    };
                }

                string Desc = Description;
                if (string.IsNullOrWhiteSpace(Description))
                {
                    Desc = NotificationTitle;
                }

                if (string.IsNullOrEmpty(EmailTemplate))
                {
                    EmailTemplate = "Emails/ActivityEmail";
                }

                var email = _mailingHelper.CreateEmail(
                    _config.GetConfig("smtp.from.email"), //from
                    UserEmail,                            // Tos
                    Subject,                              // Subject
                    EmailTemplate,                        // viewName
                    user,                                 // Model
                    Data,                                 // additionalData
                    null,
                    null,                                 // replyTo
                    null,                                 // replyToName
                    Desc,                                 // plain message
                    null,                                 // cc
                    null,                                 // bcc
                    Enum.GetName(typeof(Activities), activity),
                    CallBack,
                    Enum.GetName(typeof(NotificationInboxStatus), notifStatus),
                    Attachments
                    );

                var emailResult = _mailingHelper.SendEmail(email).Result;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
Esempio n. 2
0
        private void SendNotif(string Id, int?UserId, string Subject, string Content, NotificationInboxStatus status, string Notes = null)
        {
            var Profile = _userHelper.GetUserProfile(UserId.Value);

            if (Profile != null)
            {
                var AppUser     = _userHelper.GetUser(Profile.ApplicationUserId);
                var callbackUrl = Url.Action("Details",
                                             "Srf",
                                             new { area = "Admin", id = Guid.Parse(Id) },
                                             _hostConfiguration.Protocol,
                                             _hostConfiguration.Name);

                _notif.Send(
                    User,          // User From
                    Subject,       // Subject
                    Profile.Name,  // User target name
                    AppUser.Email, // User target email
                    callbackUrl,   // Link CallBack
                    Content,       // Email content or descriptions
                    Notes,         // Description
                    status,        // Notif Status
                    Activities.SRF // Activity Status
                    );
            }
        }