// GET: BackOffice/Documents/Create public async Task<ActionResult> Create(int? collectionId, int? authorId) { var doc = new Document(); doc.Translations.Add(new DocumentTranslation { LanguageCode = LanguageDefinitions.DefaultLanguage }); // Check for a collection. if (collectionId != null && db.Set<Collection>().Any(c => c.Id == collectionId)) { doc.CatalogCode = CodeGenerator.SuggestDocumentCode(collectionId.Value); doc.CollectionId = collectionId.Value; } // Check for an author. if (authorId != null && db.Set<Author>().Any(a => a.Id == authorId)) { doc.AuthorId = authorId.Value; } var model = new DocumentEditViewModel(doc); await model.PopulateDropDownLists(db.Set<Author>(), db.Set<Collection>()); return View(model); }
public DocumentEditViewModel(Document d) { this.Document = d; AvailableAuthors = new List<SelectListItem> { new SelectListItem { Value = "", Text = LayoutStrings.ChooseOne } }; AvailableCollections = new List<SelectListItem> { new SelectListItem { Value = "", Text = LayoutStrings.ChooseOne } }; }
private bool DoesCodeAlreadyExist(Document doc) { return db.Entities .Any(d => d.CatalogCode == doc.CatalogCode && d.Id != doc.Id); }
public async Task<ActionResult> Edit(Document document) { if (DoesCodeAlreadyExist(document)) { ModelState.AddModelError("CatalogCode", DocumentStrings.CodeAlreadyExists); } if (ModelState.IsValid) { foreach (var t in document.Translations) { db.UpdateTranslation(t); } db.Update(document); await db.SaveChangesAsync(); return RedirectToAction("Index"); } var model = new DocumentEditViewModel(document); await model.PopulateDropDownLists(db.Set<Author>(), db.Set<Collection>()); return View(model); }