public void CreateSuccessfulBlogTest() { using (UnitOfWork uow = new UnitOfWork()) { BlogRepository br = new BlogRepository(uow.Current); //Creo il blog Devevil.Blog.Model.Domain.Entities.Blog b = new Devevil.Blog.Model.Domain.Entities.Blog(".Net Help", "Un blog dedicato allo sviluppo"); //creo una categoria generica Category c = new Category("Nessuna categoria", "Categoria generica"); //Creo un paio di TAG Tag t1 = new Tag("C#"); Tag t2 = new Tag(".NET"); //Creo un autore, afferente al blog "b" Author a = new Author("Pasquale", "Garzillo", Convert.ToDateTime("27/12/1987"), "*****@*****.**",true,"rofox2011",b); //Creo una pagina afferente al blog "b", che ha per autore "a" ed appartiene alla categoria "c" Page p = new Page("Prima pagina del blog", "Descrizione della prima pagina", DateTime.Today, "testo pagina", a, b, c); //Creo un commento per la pagina "p" Comment co = new Comment("Raowyr", "*****@*****.**", "Testo commento", p); //Aggiunto i tag "t1" e "t2" alla pagina p.AddTag(t1); p.AddTag(t2); //Aggiungo il commento "co" alla pagina p.AddComment(co); //Aggiungo la pagina "p" al blog "b" b.AddPageToBlog(p); //Aggiungo l'autore "a" al blog "b" b.AddAuthorToBlog(a); //La categoria "c" è categoria della pagina "p" c.AddCategoryToPage(p); //L'autore "a" è autore della pagina "p" a.AddAuthoringPage(p); //Tag "t1" e "t2" sono tag delle pagina "p" t1.AddTagToPage(p); t2.AddTagToPage(p); br.Save(b); uow.Commit(); Devevil.Blog.Model.Domain.Entities.Blog bb = br.GetById(b.Id); Assert.IsNotNull(bb); } }
public ActionResult PageNew(PageViewModel model) { try { //Carica tutti gli elementi necessari a video using (UnitOfWork uow = new UnitOfWork()) { AuthorRepository ar = new AuthorRepository(uow.Current); BlogRepository br = new BlogRepository(uow.Current); CategoryRepository cr = new CategoryRepository(uow.Current); //Ricarica la lista autori IList<Author> tmpAuthors = ar.FindAll().ToList(); if (tmpAuthors != null && tmpAuthors.Count > 0) { IEnumerable<SelectListItem> tmpAuthorsItems; tmpAuthorsItems = from s in tmpAuthors select new SelectListItem { Text = s.NameAndSurname, Value = s.Id.ToString() }; model.Authors = tmpAuthorsItems; } IList<Blog.Model.Domain.Entities.Blog> tmpBlogs = br.FindAll().ToList(); if (tmpBlogs != null && tmpBlogs.Count > 0) { IEnumerable<SelectListItem> tmpBlogsItems; tmpBlogsItems = from b in tmpBlogs select new SelectListItem { Text = b.Name, Value = b.Id.ToString() }; model.Blogs = tmpBlogsItems; } IList<Category> tmpCategories = cr.FindAll().ToList(); if (tmpCategories != null && tmpCategories.Count > 0) { IEnumerable<SelectListItem> tmpCategoriesItems; tmpCategoriesItems = from b in tmpCategories select new SelectListItem { Text = b.Name, Value = b.Id.ToString() }; model.Categories = tmpCategoriesItems; } } if (ModelState.IsValid) { using (UnitOfWork uow = new UnitOfWork()) { string fileName = null; if (model.File != null && model.File.ContentLength > 0) { //SALVA IL FILE fileName = Path.GetFileName(model.File.FileName); var path = Path.Combine(Server.MapPath("/Uploads"), fileName); model.File.SaveAs(path); model.FileName = fileName; } model.SelectedAuthor = model.SelectedAuthor; model.SelectedBlog = model.SelectedBlog; model.SelectedCategory = model.SelectedCategory; PageRepository pr = new PageRepository(uow.Current); AuthorRepository ar = new AuthorRepository(uow.Current); BlogRepository br = new BlogRepository(uow.Current); CategoryRepository cr = new CategoryRepository(uow.Current); TagRepository tr = new TagRepository(uow.Current); Author au = ar.GetById(Convert.ToInt32(model.SelectedAuthor)); Blog.Model.Domain.Entities.Blog bb = br.GetById(Convert.ToInt32(model.SelectedBlog)); Category cc = cr.GetById(Convert.ToInt32(model.SelectedCategory)); Page p = new Page(model.Titolo, model.Descrizione, model.Data, model.Body, au, bb, cc); if (!String.IsNullOrEmpty(model.Tags)) { foreach(var t in model.Tags.Split(',')) { if (!String.IsNullOrEmpty(t)) { Tag tg = tr.GetTagByName(t.TrimStart().TrimEnd()); if (tg != null) { p.AddTag(tg); } else { Tag tempTag = new Tag(t.TrimStart().TrimEnd()); p.AddTag(tempTag); } } } } if (!String.IsNullOrEmpty(fileName)) p.SetImagePath(fileName); else model.FileName = p.ImageName; pr.SaveOrUpdate(p); uow.Commit(); model.Message = "Salvataggio eseguito con successo!"; } } return View(model); } catch (Exception ex) { return Error(ex); } }