Как отправить электронное письмо на несколько адресов электронной почты в базе данных с помощью Postal в ASP.NET MVCC#

Место общения программистов C#
Ответить
Anonymous
 Как отправить электронное письмо на несколько адресов электронной почты в базе данных с помощью Postal в ASP.NET MVC

Сообщение Anonymous »

Я пытаюсь найти решение, как отправить электронное письмо на несколько адресов электронной почты больницы в зависимости от того, какие заказы связаны с доставкой, в которую вносятся изменения, - с помощью Postal.

Итак, для справки, я хочу отправить одно и то же электронное письмо всем больницам, заказы которых связаны с доставкой. Поэтому после редактирования доставки (например, для изменения статуса) электронное письмо должно быть отправлено во ВСЕ больницы, у которых есть заказы в этой доставке.

Проблема в том, что доставка может иметь много заказов, а не обязательно только один, и поэтому я не уверен, как настроить таргетинг на все адреса электронной почты всех больниц, у которых есть заказы в этой конкретной доставке.

Кроме того, больница связана только с заказом, а заказ связан с доставкой - и единственный способ получить доступ к электронной почте больницы - из больницы стол. Это означает, что мне нужно пройти через таблицу «Заказ», а затем перейти к таблице «Больница».

Как мне это сделать? Я все еще новичок в MVC, поэтому буду признателен за любую помощь, которую смогу получить.

Я делаю это в POST моего Метода редактирования в Контроллере доставки, потому что я хочу отправить электронное письмо оттуда только после внесения изменения. Вот почему я вызываю его после savechanges().

Эти строки

Код: Выделить всё

Order order = db.Orders.Where(o => o.OrderID == order.DeliveryID).FirstOrDefault();
и Hospital Hospital = db.Hospitals.(h => h.HospitalID == order.HospitalID); — это всего лишь мои попытки. Они не работают и не являются частью исходного кода.

Если требуется дополнительный код, сообщите мне, и я добавлю его в вопрос!

Модели

Доставка

Код: Выделить всё

public class Delivery
{

public int DeliveryID { get; set; }

public int DriverID { get; set; }

public virtual Driver Driver { get; set; }

public virtual ICollection Orders { get; set; }
}
Больница

Код: Выделить всё

public class Hospital
{
public int HospitalID { get; set; }

public string Name { get; set; }

public string Email { get; set; }

public virtual ICollection Orders { get; set; }
}
Заказать

Код: Выделить всё

   public class Order
{
public int OrderID { get; set; }

public int HospitalID { get; set; }

public int? DeliveryID { get; set; }}

public virtual Hospital Hospital { get; set; }

public virtual Delivery Delivery { get; set; }
}
Модель представления DeliveryVM

Код: Выделить всё

public class DeliveryVM
{
public int? ID { get; set; }

public int DriverID { get; set; }

public SelectList DriverList { get; set; }

public List Orders { get; set; }
}
Метод POST контроллера доставки:

Код: Выделить всё

 [HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(DeliveryVM model)
{

// Get the data model based on the ID of the view model
Delivery delivery = db.Deliverys.Find(model.ID);
// Map the view model properties to the data model
delivery.DriverID = model.DriverID;
....

db.SaveChanges();

//Email
Order order = db.Orders.Where(o => o.OrderID == order.DeliveryID).FirstOrDefault(); // I tried this but it didn't work. It was just an attempt
Hospital hospital = db.Hospitals.(h => h.HospitalID == order.HospitalID); // I was going to use this to retrieve the hospitalIDs linked to the Order? Don't know if thats correct
dynamic email = new Email("Example");
email.ID = delivery.DeliveryID;
email.To = hospital.Email; // this is where you set the email you are sending to.
email.Send();
//End
return RedirectToAction("Index");
}
Примечание
  • Я удалил много кода из метода редактирования доставки для удобства чтения, поэтому при необходимости я также могу добавить его к вопросу.


Подробнее здесь: https://stackoverflow.com/questions/329 ... -postal-in
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»