Пример #1
0
        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));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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());
        }