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)); } }
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)); } }
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)); }
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 })); } }
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 })); } }
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")); }
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 })); } }