/// <summary> /// Установка класса документу. /// </summary> public IActionResult Edit(int id) { using var db = AppContextFactory.DB; var doc = db.DocFiles.FirstOrDefault(i => i.Id == id) ?? new DocFile(); if (doc.Id == 0) { throw new Exception("Не выпадет никогда (хотя может, если постараться =) ), но все же оставлю это здесь!"); } LearningEditViewModel model = new LearningEditViewModel { DocId = doc.Id, ClassId = doc.ClassId, Classes = new List <SelectListItem>() { new SelectListItem() { Text = "[ Нет класса ]", Selected = true, Value = "" } } }; model.Classes.AddRange(DataHelper.CreateSelectListItem(db, doc.ClassId, "subjects")); return(View(model)); }
public async Task <IActionResult> Edit(int id, string name) { using var db = AppContextFactory.DB; var model = new LearningEditViewModel(); await TryUpdateModelAsync <LearningEditViewModel>(model, "", i => i.DocId, i => i.ClassId); if (!ModelState.IsValid) { var classes = new List <SelectListItem>() { new SelectListItem() { Text = "[ Выбрать класс ]", Selected = true, Value = "" } }; classes.AddRange(DataHelper.CreateSelectListItem(db, model.ClassId, "subjects")); return(View(new LearningEditViewModel() { DocId = model.DocId, ClassId = model.ClassId, Classes = classes })); } using var t = db.Database.BeginTransaction(); try { var doc = db.DocFiles.First(i => i.Id == id); doc.ClassId = model.ClassId ?? (int?)null; await db.SaveChangesAsync(); await t.CommitAsync(); } catch (Exception ex) { await t.RollbackAsync(); ModelState.AddModelError("Error", "В процессе сохранения произошла ошибка! Ошибка: " + ex.Message); } return(RedirectToAction("Index")); }