У меня есть сайт библиотеки документов, и я хотел бы отправить электронное письмо при редактировании объекта документа, содержащее сводку изменений.
Взаимодействие с базой данных - это Code First Entities Framework с использованием DBContext
Вот что у меня пока есть:
[HttpPost]
public ActionResult Edit(Document document, bool sendEmail, string commentsTextBox)
{
if (ModelState.IsValid)
{
docsDB.Entry(document).State = EntityState.Modified;
foreach (string propertyName in docsDB.Entry(document).OriginalValues.PropertyNames)
{
var OriginalValue = docsDB.Entry(document).OriginalValues.GetValue<object>(propertyName);
var NewValue = docsDB.Entry(document).CurrentValues.GetValue<object>(propertyName);
if (!OriginalValue.Equals(NewValue))
{
//capture the changes
}
}
docsDB.SaveChanges();
if (sendEmail)
{
//sends email
}
return RedirectToAction("Index");
}
Однако OriginalValue и NewValue всегда одинаковы - значения обновления.
Есть ли способ, если что-то не хватаетхакать, как запись в файл, чтобы зафиксировать состояние документа перед POST?