public void PuedoAgregarUnArbolDeHijos() { Pagina padre = null; using (var tx = Session.BeginTransaction()) { padre = new Pagina { Nombre = "Prueba Padre", Contenido = "HTML", Url="/1" }; var pagina2 = new Pagina { Nombre = "Prueba Hijo 1", Contenido = "HTML", Url = "/2" }; var pagina3 = new Pagina { Nombre = "Prueba Hijo 2", Contenido = "HTML", Url = "/3" }; pagina2.AgregarHijo(pagina3); padre.AgregarHijo(pagina2); Session.Save(padre); tx.Commit(); } Session.Flush(); Session.Evict(padre); var pagina = Session.Get<Pagina>(padre.Id); Assert.NotNull(pagina); pagina.Hijos.Count().Should().Be(1); pagina.Hijos.First().Hijos.Count().Should().Be(1); }
public virtual Pagina AgregarHijo(Pagina pagina) { if (pagina == null) throw new ArgumentNullException("pagina"); _hijos.Add(pagina); pagina.Padre = this; return this; }
public void PuedoAgregarUnaPagina() { Pagina pagina; using (var tx = Session.BeginTransaction()) { pagina = new Pagina { Nombre = "Prueba", Contenido = "HTML", Url = "/" }; Session.Save(pagina); tx.Commit(); } Session.Flush(); Session.Evict(pagina); var db = Session.Get<Pagina>(pagina.Id); db.Nombre.Should().Be("Prueba"); }
private static void AddPaginaToRoute(RouteCollection routes, Pagina pagina) { routes.MapRoute( "Pagina - " + pagina.Nombre, pagina.Url == "/" ? string.Empty : pagina.Url, // URL with parameters new { controller = "Content", action = "Index", id = pagina.Id } ); foreach (var hijo in pagina.Hijos) { AddPaginaToRoute(routes, hijo); } }
public void PuedoConsultarLasPaginasRaiz() { using (var tx = Session.BeginTransaction()) { var padre = new Pagina { Nombre = "Prueba Padre", Contenido = "HTML", Url = "/1" }; var pagina2 = new Pagina { Nombre = "Prueba Hijo 1", Contenido = "HTML", Url = "/2" }; var pagina3 = new Pagina { Nombre = "Prueba Hijo 2", Contenido = "HTML", Url = "/3" }; padre.AgregarHijo(pagina2); Session.Save(padre); Session.Save(pagina3); tx.Commit(); } Session.Flush(); var roots = new ObtenerPaginasRaizQuery { SessionFactory = SessionFactory }.Execute(); roots.Count().Should().Be(5); //Dos ya existen en el app initializer }
private static PageViewModel ConvertModelToDynamic(Pagina pagina, PageViewModel parent = null) { var page = new PageViewModel { Name = pagina.Nombre, Url = VirtualPathUtility.ToAbsolute("~/") + pagina.Url, Parent = parent, Order = pagina.Orden }; var childCount = pagina.Hijos.Count; for (var i = 0; i < childCount; i++) { page.Childs.Add(ConvertModelToDynamic(pagina.Hijos.ElementAt(i), page)); } return page; }