public async Task <IActionResult> EditPublication(EditPublicationViewModel model) { if (ModelState.IsValid) { if (model != null) { Publication publication = await _db.Publications.Include(pub => pub.PublicationCategories).ThenInclude(pc => pc.Category).FirstOrDefaultAsync(p => p.Id == model.Id); publication.Name = model.Name; publication.Annotation = model.Annotation; publication.PublishingYear = model.PublishingYear; publication.PublicationCategories.RemoveRange(0, publication.PublicationCategories.Count); Category tempCat; foreach (string cat in model.Categories) { tempCat = _db.Categories.FirstOrDefault(c => c.Name == cat); publication.PublicationCategories.Add(new PublicationCategory { PublicationId = publication.Id, CategoryId = tempCat.Id }); } if (model.File != null) { // путь к папке Files string newPath = "/Files/" + model.File.FileName; string oldPath = model.OldFilePath; // сохраняем файл в папку Files в каталоге wwwroot using (var fileStream = new FileStream(_appEnvironment.WebRootPath + newPath, FileMode.Create)) { await model.File.CopyToAsync(fileStream); publication.Path = fileStream.Name; } System.IO.File.Delete(oldPath); } _db.SaveChanges(); return(RedirectToAction("ObservePublication", "Publications", new { id = publication.Id })); } return(NotFound()); } return(View(model)); }
public ActionResult Edit(EditPublicationViewModel publicationModel) { EditPublicationData editData = new EditPublicationData() { Id = publicationModel.Id, Title = publicationModel.Title, Content = Encoding.Default.GetBytes(publicationModel.Content) }; var result = ContentService.EditPublication(editData); var fullPublication = ContentService.GetPublication(editData.Id); if (result.Succedeed) { return(PartialView("_PublicationPartial", fullPublication)); } ModelState.AddModelError("", result.Message); fullPublication.Title = editData.Title; fullPublication.Content = editData.Content; return(PartialView("_EditPublicationPartial", fullPublication)); }
public async Task <IActionResult> EditPublication(string id) { if (id != null) { Publication publication = await _db.Publications.Include(p => p.User).FirstOrDefaultAsync(p => p.Id == id); if (publication != null) { EditPublicationViewModel model = new EditPublicationViewModel { Id = publication.Id, Name = publication.Name, Annotation = publication.Annotation, PublishingYear = publication.PublishingYear, OldFilePath = publication.Path }; List <string> categories = new List <string>(); foreach (PublicationCategory pc in publication.PublicationCategories) { categories.Add(pc.Category.Name); } model.Categories = categories; List <string> catNames = new List <string>(); foreach (Category cat in _db.Categories.ToList()) { catNames.Add(cat.Name); } ViewBag.PublishingYears = _availablePublishingYears; ViewBag.Categories = catNames; return(View(model)); } } return(NotFound()); }