Example #1
0
        public async Task <IActionResult> Emails(EmailsViewModel model, string command)
        {
            if (command == "Test")
            {
                try
                {
                    if (!model.Settings.IsComplete())
                    {
                        model.StatusMessage = "Error: Required fields missing";
                        return(View(model));
                    }
                    var client = model.Settings.CreateSmtpClient();
                    await client.SendMailAsync(model.Settings.From, model.TestEmail, "BTCPay test", "BTCPay test");

                    model.StatusMessage = "Email sent to " + model.TestEmail + ", please, verify you received it";
                }
                catch (Exception ex)
                {
                    model.StatusMessage = "Error: " + ex.Message;
                }
                return(View(model));
            }
            else // if(command == "Save")
            {
                await _SettingsRepository.UpdateSetting(model.Settings);

                model.StatusMessage = "Email settings saved";
                return(View(model));
            }
        }
Example #2
0
        public async Task <IActionResult> Emails(EmailsViewModel model, string command)
        {
            if (!model.Settings.IsComplete())
            {
                TempData[WellKnownTempData.ErrorMessage] = "Required fields missing";
                return(View(model));
            }

            if (command == "Test")
            {
                try
                {
                    using (var client = model.Settings.CreateSmtpClient())
                        using (var message = model.Settings.CreateMailMessage(new MailAddress(model.TestEmail), "BTCPay test", "BTCPay test"))
                        {
                            await client.SendMailAsync(message);
                        }
                    TempData[WellKnownTempData.SuccessMessage] = "Email sent to " + model.TestEmail + ", please, verify you received it";
                }
                catch (Exception ex)
                {
                    TempData[WellKnownTempData.ErrorMessage] = ex.Message;
                }
                return(View(model));
            }
            else // if(command == "Save")
            {
                await _SettingsRepository.UpdateSetting(model.Settings);

                TempData[WellKnownTempData.SuccessMessage] = "Email settings saved";
                return(View(model));
            }
        }
Example #3
0
        public async Task <IActionResult> Emails(EmailsViewModel model, string command)
        {
            if (command == "Test")
            {
                if (!ModelState.IsValid)
                {
                    return(View(model));
                }
                try
                {
                    var client = model.Settings.CreateSmtpClient();
                    await client.SendMailAsync(model.Settings.From, model.TestEmail, "BTCPay test", "BTCPay test");

                    model.StatusMessage = "Email sent to " + model.TestEmail + ", please, verify you received it";
                }
                catch (Exception ex)
                {
                    model.StatusMessage = "Error: " + ex.Message;
                }
                return(View(model));
            }
            else
            {
                ModelState.Remove(nameof(model.TestEmail));
                if (!ModelState.IsValid)
                {
                    return(View(model));
                }
                await _SettingsRepository.UpdateSetting(model.Settings);

                model.StatusMessage = "Email settings saved";
                return(View(model));
            }
        }
        public async Task <IActionResult> Emails(EmailsViewModel model, string command)
        {
            if (!model.Settings.IsComplete())
            {
                model.StatusMessage = "Error: Faltan campos obligatorios";
                return(View(model));
            }

            if (command == "Test")
            {
                try
                {
                    var client = model.Settings.CreateSmtpClient();
                    await client.SendMailAsync(model.Settings.From, model.TestEmail, "BTCPay test", "BTCPay test");

                    model.StatusMessage = "Correo electrónico enviado a " + model.TestEmail + ", por favor verifica que lo recibiste";
                }
                catch (Exception ex)
                {
                    model.StatusMessage = "Error: " + ex.Message;
                }
                return(View(model));
            }
            else // if(command == "Save")
            {
                await _SettingsRepository.UpdateSetting(model.Settings);

                model.StatusMessage = "Configuraciones de correo electrónico guardadas";
                return(View(model));
            }
        }
        public ActionResult MessageHistory(int applicationId, string clientEMail)
        {
            var context = new RmaEntities();
            var emails  = context.Email.Where(e => e.Application_Id == applicationId).ToList();
            var model   = new EmailsViewModel(emails, clientEMail, applicationId);

            return(View(model));
        }
Example #6
0
        public async Task <IActionResult> Emails()
        {
            var model = new EmailsViewModel()
            {
                User = await _userManager.GetUserAsync(this.User)
            };

            return(View(model));
        }
        public async Task <IActionResult> Emails(EmailsViewModel model, string command)
        {
            if (command == "Test")
            {
                try
                {
                    if (model.PasswordSet)
                    {
                        var settings = await _SettingsRepository.GetSettingAsync <EmailSettings>();

                        model.Settings.Password = settings.Password;
                    }
                    if (!model.Settings.IsComplete())
                    {
                        TempData[WellKnownTempData.ErrorMessage] = "Required fields missing";
                        return(View(model));
                    }
                    using (var client = model.Settings.CreateSmtpClient())
                        using (var message = model.Settings.CreateMailMessage(new MailAddress(model.TestEmail), "BTCPay test", "BTCPay test"))
                        {
                            await client.SendMailAsync(message);
                        }
                    TempData[WellKnownTempData.SuccessMessage] = "Email sent to " + model.TestEmail + ", please, verify you received it";
                }
                catch (Exception ex)
                {
                    TempData[WellKnownTempData.ErrorMessage] = ex.Message;
                }
                return(View(model));
            }
            else if (command == "ResetPassword")
            {
                var settings = await _SettingsRepository.GetSettingAsync <EmailSettings>();

                settings.Password = null;
                await _SettingsRepository.UpdateSetting(model.Settings);

                TempData[WellKnownTempData.SuccessMessage] = "Email server password reset";
                return(RedirectToAction(nameof(Emails)));
            }
            else // if(command == "Save")
            {
                var oldSettings = await _SettingsRepository.GetSettingAsync <EmailSettings>();

                if (new EmailsViewModel(oldSettings).PasswordSet)
                {
                    model.Settings.Password = oldSettings.Password;
                }
                await _SettingsRepository.UpdateSetting(model.Settings);

                TempData[WellKnownTempData.SuccessMessage] = "Email settings saved";
                return(RedirectToAction(nameof(Emails)));
            }
        }
        public async Task <IActionResult> Emails(string storeId, EmailsViewModel model, string command)
        {
            var store = HttpContext.GetStoreData();

            if (store == null)
            {
                return(NotFound());
            }
            if (command == "Test")
            {
                try
                {
                    if (!model.Settings.IsComplete())
                    {
                        TempData[WellKnownTempData.ErrorMessage] = "Required fields missing";
                        return(View(model));
                    }
                    var client  = model.Settings.CreateSmtpClient();
                    var message = model.Settings.CreateMailMessage(new MailAddress(model.TestEmail), "BTCPay test", "BTCPay test");
                    await client.SendMailAsync(message);

                    TempData[WellKnownTempData.SuccessMessage] = "Email sent to " + model.TestEmail + ", please, verify you received it";
                }
                catch (Exception ex)
                {
                    TempData[WellKnownTempData.ErrorMessage] = "Error: " + ex.Message;
                }
                return(View(model));
            }
            else // if(command == "Save")
            {
                var storeBlob = store.GetStoreBlob();
                storeBlob.EmailSettings = model.Settings;
                store.SetStoreBlob(storeBlob);
                await _Repo.UpdateStore(store);

                TempData[WellKnownTempData.SuccessMessage] = "Email settings modified";
                return(RedirectToAction(nameof(UpdateStore), new
                {
                    storeId
                }));
            }
        }
Example #9
0
        public async Task <IActionResult> Emails(string storeId, EmailsViewModel model, string command)
        {
            var store = HttpContext.GetStoreData();

            if (store == null)
            {
                return(NotFound());
            }
            if (command == "Test")
            {
                try
                {
                    if (!model.Settings.IsComplete())
                    {
                        model.StatusMessage = "Error: Faltan campos obligatorios";
                        return(View(model));
                    }
                    var client = model.Settings.CreateSmtpClient();
                    await client.SendMailAsync(model.Settings.From, model.TestEmail, "BTCPay test", "BTCPay test");

                    model.StatusMessage = "Correo electrónico enviado a " + model.TestEmail + ", por favor verifica que lo recibiste";
                }
                catch (Exception ex)
                {
                    model.StatusMessage = "Error: " + ex.Message;
                }
                return(View(model));
            }
            else // if(command == "Save")
            {
                var storeBlob = store.GetStoreBlob();
                storeBlob.EmailSettings = model.Settings;
                store.SetStoreBlob(storeBlob);
                await _Repo.UpdateStore(store);

                StatusMessage = "Configuraciones de correo electrónico modificadas";
                return(RedirectToAction(nameof(UpdateStore), new {
                    storeId
                }));
            }
        }
Example #10
0
        public async Task <IActionResult> StoreEmails(EmailsViewModel model)
        {
            var user = await _userManager.FindByIdAsync(model.User.Id.ToString());

            user.Email           = model.User.Email;
            user.NormalizedEmail = model.User.Email.ToUpper();

            // also update username since its the same (subject to change)
            user.UserName           = model.User.Email;
            user.NormalizedUserName = model.User.Email.ToUpper();

            user.WorkEmail = model.User.WorkEmail;

            await _userManager.UpdateAsync(user);

            _context.SaveChanges();

            // log user out so they can log in with new email
            await _signManager.SignOutAsync();

            return(RedirectToAction("Index", "Home"));
        }
        public ActionResult SendMessage(string clientEmail, string workerEmail, int applicationId, IEnumerable <Email> sortedEmails)
        {
            var model = new EmailsViewModel(sortedEmails, clientEmail, applicationId);

            return(View("WriteMessage"));
        }
Example #12
0
        public async Task <IActionResult> Emails(string storeId, EmailsViewModel model, string command)
        {
            var store = HttpContext.GetStoreData();

            if (store == null)
            {
                return(NotFound());
            }
            if (command == "Test")
            {
                try
                {
                    if (model.PasswordSet)
                    {
                        model.Settings.Password = store.GetStoreBlob().EmailSettings.Password;
                    }
                    if (!model.Settings.IsComplete())
                    {
                        TempData[WellKnownTempData.ErrorMessage] = "Required fields missing";
                        return(View(model));
                    }
                    using var client = await model.Settings.CreateSmtpClient();

                    var message = model.Settings.CreateMailMessage(new MailboxAddress(model.TestEmail, model.TestEmail), "GRSPay test", "GRSPay test", false);
                    await client.SendAsync(message);

                    await client.DisconnectAsync(true);

                    TempData[WellKnownTempData.SuccessMessage] = "Email sent to " + model.TestEmail + ", please, verify you received it";
                }
                catch (Exception ex)
                {
                    TempData[WellKnownTempData.ErrorMessage] = "Error: " + ex.Message;
                }
                return(View(model));
            }
            else if (command == "ResetPassword")
            {
                var storeBlob = store.GetStoreBlob();
                storeBlob.EmailSettings.Password = null;
                store.SetStoreBlob(storeBlob);
                await _Repo.UpdateStore(store);

                TempData[WellKnownTempData.SuccessMessage] = "Email server password reset";
                return(RedirectToAction(nameof(Emails), new
                {
                    storeId
                }));
            }
            else // if(command == "Save")
            {
                var storeBlob   = store.GetStoreBlob();
                var oldPassword = storeBlob.EmailSettings?.Password;
                if (new EmailsViewModel(storeBlob.EmailSettings).PasswordSet)
                {
                    model.Settings.Password = storeBlob.EmailSettings.Password;
                }
                storeBlob.EmailSettings = model.Settings;
                store.SetStoreBlob(storeBlob);
                await _Repo.UpdateStore(store);

                TempData[WellKnownTempData.SuccessMessage] = "Email settings modified";
                return(RedirectToAction(nameof(Emails), new
                {
                    storeId
                }));
            }
        }