Beispiel #1
0
        /// <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));
        }
Beispiel #2
0
        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"));
        }