Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        public virtual Pagina AgregarHijo(Pagina pagina)
        {
            if (pagina == null) throw new ArgumentNullException("pagina");

            _hijos.Add(pagina);
            pagina.Padre = this;

            return this;
        }
Esempio n. 3
0
        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");
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        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
        }
Esempio n. 6
0
        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;
        }