Exemple #1
0
 public static void Initialize(InoLibraryDbContext context)
 {
     if (!context.Categories.Any())
     {
         List <Category> categories = new List <Category> {
             new Category {
                 Name = "Физика"
             },
             new Category {
                 Name = "Химия"
             },
             new Category {
                 Name = "Биология"
             },
             new Category {
                 Name = "Астрономия"
             },
             new Category {
                 Name = "Геология"
             },
             new Category {
                 Name = "География"
             },
         };
         context.Categories.AddRange(categories);
         context.SaveChanges();
     }
 }
        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));
        }