상속: PersistenteDTO
예제 #1
0
        public void B_GetInvalidPage()
        {
            // verifico il recupero di una pagina tramite identificativo

            PageDTO invalidPage = new PageDTO();

            invalidPage = svc.GetPage(9000);

            Assert.IsNull(invalidPage, "la pagina è stata trovata!");
        }
예제 #2
0
        public void A_CreateInvalidPage()
        {
            // verifico che una pagina senza valori non può essere salvata

            PageDTO invalidPage = new PageDTO();

            //valorizzo la proprietà ISNEW per forzare la creazione
            invalidPage.IsNew = true;

            invalidPage = svc.SavePage(invalidPage);

            Assert.IsFalse(invalidPage.IsPersisted, "la pagina risulta salvata: isPersisted is True!");
            Assert.AreEqual(0, invalidPage.Pageid, "la pagina ha un identificativo!");
        }
예제 #3
0
        public void B_CreateBasket()
        {
            PageDTO basket = new PageDTO();

            basket.Title = basket.Publictitle = "Cestino";
            basket.Contentid = content.Contentid;
            basket.State = 99;
            basket.Structureid = 1;
            basket.Position = 1;
            basket.IsNew = true;

            basket = svc.SavePage(basket);

            Assert.IsTrue(basket.IsPersisted, "la pagina Cestino non risulta salvata: isPersisted is False!");
            Assert.IsTrue(basket.Pageid > 0, "la pagina Cestino non ha un identificativo proprio!");
            Assert.IsNotNull(basket.PageelementsList, "il sistema non ha creato gli elementi previsti dalla struttura Cestino");
        }
예제 #4
0
        public void D_Move_Page9_to_Page2()
        {
            page9.Parentpageid = page2.Pageid;
            page9.Position = 1;
            page9.Dirty = true;

            page9 = svc.MovePage(page9);
            //Assert su Oggetto Restituito
            if (page9.Parentpageid == page8.Pageid) {
                Assert.Fail("La Page9 risulta ancora  figlia della Page8");
            }
            Assert.IsTrue(page9.Parentpageid == page2.Pageid, "La Page9 non risulta figlia della Page2");
            Assert.IsTrue(page9.Position == 1, "La Page9 non ha position = 1");

            PageDTO page9DB = new PageDTO();
            page9DB = svc.GetPage(page9.Pageid);
            //Assert su Oggetto Persistito
            if (page9DB.Parentpageid == page8.Pageid) {
                Assert.Fail("Sul DB La Page9 risulta ancora  figlia della Page8");
            }
            Assert.IsTrue(page9DB.Parentpageid == page2.Pageid, "Sul DB La Page9 non risulta figlia della Page2");
            Assert.IsTrue(page9DB.Position == 1, "Sul DB La Page9 non ha position = 1");

            page9 = page9DB;
        }
예제 #5
0
        public void C_CreateStructurePage()
        {
            //Creo le pagine sul db
            page1.Title = page1.Publictitle = "Page1";
            page1.Contentid = content.Contentid;
            page1.Position = 1;
            page1.Structureid = 3;
            page1.IsNew = true;
            page1 = svc.SavePage(page1);
            //Assert Page1
            Assert.IsTrue(page1.IsPersisted, "la Page1 non risulta salvata: isPersisted is False!");
            Assert.IsTrue(page1.Pageid > 0, "la Page1 non ha un identificativo proprio!");
            Assert.IsTrue(page1.Pageid == page1.Parentpageid, "la Page1 non ha il parentpageid uguale al pageid");
            Assert.IsTrue(page1.Position == 1, "la Page1 non ha position = 1");

            //Creo la pagina2 sul db
            page2.Title = page2.Publictitle = "Page2";
            page2.Contentid = content.Contentid;
            page2.Parentpageid = page1.Pageid;
            page2.Position = 1;
            page2.Structureid = 3;
            page2.IsNew = true;
            page2 = svc.SavePage(page2);
            //Assert Page2
            Assert.IsTrue(page2.IsPersisted, "la Page2 non risulta salvata: isPersisted is False!");
            Assert.IsTrue(page2.Pageid > 0, "la Page2 non ha un identificativo proprio!");
            Assert.IsTrue(page1.Pageid == page2.Parentpageid, "la Page2 non è figlia di Page1");
            Assert.IsTrue(page2.Position == 1, "la Page2 non ha position = 1");

            //Creo la pagina3 sul db
            page3.Title = page3.Publictitle = "Page3";
            page3.Contentid = content.Contentid;
            page3.Parentpageid = page1.Pageid;
            page3.Position = 2;
            page3.Structureid = 3;
            page3.IsNew = true;
            page3 = svc.SavePage(page3);
            //Assert Page3
            Assert.IsTrue(page3.IsPersisted, "la Page3 non risulta salvata: isPersisted is False!");
            Assert.IsTrue(page3.Pageid > 0, "la Page3 non ha un identificativo proprio!");
            Assert.IsTrue(page1.Pageid == page3.Parentpageid, "la Page3 non è figlia di Page1");
            Assert.IsTrue(page3.Position == 2, "la Page3 non ha position = 2");

            //Creo la pagina4 sul db
            page4.Title = page4.Publictitle = "Page4";
            page4.Contentid = content.Contentid;
            page4.Parentpageid = page1.Pageid;
            page4.Position = 3;
            page4.Structureid = 3;
            page4.IsNew = true;
            page4 = svc.SavePage(page4);
            //Assert Page4
            Assert.IsTrue(page4.IsPersisted, "la Page4 non risulta salvata: isPersisted is False!");
            Assert.IsTrue(page4.Pageid > 0, "la Page4 non ha un identificativo proprio!");
            Assert.IsTrue(page1.Pageid == page4.Parentpageid, "la Page4 non è figlia di Page1");
            Assert.IsTrue(page4.Position == 3, "la Page4 non ha position = 3");

            //Creo la pagina5 sul db
            page5.Title = page5.Publictitle = "Page5";
            page5.Contentid = content.Contentid;
            page5.Parentpageid = page1.Pageid;
            page5.Position = 4;
            page5.Structureid = 3;
            page5.IsNew = true;
            page5 = svc.SavePage(page5);
            //Assert Page5
            Assert.IsTrue(page5.IsPersisted, "la Page5 non risulta salvata: isPersisted is False!");
            Assert.IsTrue(page5.Pageid > 0, "la Page5 non ha un identificativo proprio!");
            Assert.IsTrue(page1.Pageid == page5.Parentpageid, "la Page5 non è figlia di Page1");
            Assert.IsTrue(page5.Position == 4, "la Page5 non ha position = 4");

            //Creo la pagina6 sul db
            page6.Title = page6.Publictitle = "Page6";
            page6.Contentid = content.Contentid;
            page6.Parentpageid = page5.Pageid;
            page6.Position = 1;
            page6.Structureid = 3;
            page6.IsNew = true;
            page6 = svc.SavePage(page6);
            //Assert Page6
            Assert.IsTrue(page6.IsPersisted, "la Page6 non risulta salvata: isPersisted is False!");
            Assert.IsTrue(page6.Pageid > 0, "la Page6 non ha un identificativo proprio!");
            Assert.IsTrue(page5.Pageid == page6.Parentpageid, "la Page6 non è figlia di Page5");
            Assert.IsTrue(page6.Position == 1, "la Page6 non ha position = 1");

            //Creo la pagina7 sul db
            page7.Title = page7.Publictitle = "Page7";
            page7.Contentid = content.Contentid;
            page7.Parentpageid = page5.Pageid;
            page7.Position = 2;
            page7.Structureid = 3;
            page7.IsNew = true;
            page7 = svc.SavePage(page7);
            //Assert Page7
            Assert.IsTrue(page7.IsPersisted, "la Page7 non risulta salvata: isPersisted is False!");
            Assert.IsTrue(page7.Pageid > 0, "la Page7 non ha un identificativo proprio!");
            Assert.IsTrue(page5.Pageid == page7.Parentpageid, "la Page7 non è figlia di Page5");
            Assert.IsTrue(page7.Position == 2, "la Page7 non ha position = 2");

            //Creo la pagina8 sul db
            page8.Title = page8.Publictitle = "Page8";
            page8.Contentid = content.Contentid;
            page8.Parentpageid = page1.Pageid;
            page8.Position = 5;
            page8.Structureid = 3;
            page8.IsNew = true;
            page8 = svc.SavePage(page8);
            //Assert Page8
            Assert.IsTrue(page8.IsPersisted, "la Page8 non risulta salvata: isPersisted is False!");
            Assert.IsTrue(page8.Pageid > 0, "la Page8 non ha un identificativo proprio!");
            Assert.IsTrue(page1.Pageid == page8.Parentpageid, "la Page8 non è figlia di Page1");
            Assert.IsTrue(page8.Position == 5, "la Page8 non ha position = 5");

            //Creo la pagina9 sul db
            page9.Title = page9.Publictitle = "Page9";
            page9.Contentid = content.Contentid;
            page9.Parentpageid = page8.Pageid;
            page9.Position = 1;
            page9.Structureid = 3;
            page9.IsNew = true;
            page9 = svc.SavePage(page9);
            //Assert Page9
            Assert.IsTrue(page9.IsPersisted, "la Page9 non risulta salvata: isPersisted is False!");
            Assert.IsTrue(page9.Pageid > 0, "la Page9 non ha un identificativo proprio!");
            Assert.IsTrue(page8.Pageid == page9.Parentpageid, "la Page9 non è figlia di Page8");
            Assert.IsTrue(page9.Position == 1, "la Page9 non ha position = 1");

            //Creo la pagina10 sul db
            page10.Title = page10.Publictitle = "Page10";
            page10.Contentid = content.Contentid;
            page10.Parentpageid = page8.Pageid;
            page10.Position = 2;
            page10.Structureid = 3;
            page10.IsNew = true;
            page10 = svc.SavePage(page10);
            //Assert Page10
            Assert.IsTrue(page10.IsPersisted, "la Page10 non risulta salvata: isPersisted is False!");
            Assert.IsTrue(page10.Pageid > 0, "la Page10 non ha un identificativo proprio!");
            Assert.IsTrue(page8.Pageid == page10.Parentpageid, "la Page10 non è figlia di Page8");
            Assert.IsTrue(page10.Position == 2, "la Page10 non ha position = 2");

            //Creo la pagina11 sul db
            page11.Title = page11.Publictitle = "Page11";
            page11.Contentid = content.Contentid;
            page11.Parentpageid = page8.Pageid;
            page11.Position = 3;
            page11.Structureid = 3;
            page11.IsNew = true;
            page11 = svc.SavePage(page11);
            //Assert Page11
            Assert.IsTrue(page11.IsPersisted, "la Page11 non risulta salvata: isPersisted is False!");
            Assert.IsTrue(page11.Pageid > 0, "la Page11 non ha un identificativo proprio!");
            Assert.IsTrue(page8.Pageid == page11.Parentpageid, "la Page11 non è figlia di Page8");
            Assert.IsTrue(page11.Position == 3, "la Page11 non ha position = 3");
        }
예제 #6
0
        public PageDTO SavePage(PageDTO pagedto)
        {
            using (ISession session = HibernateHelper.GetSession().OpenSession()) {
                using (ITransaction transaction = session.BeginTransaction()) {
                    try {
                        Page page = new Page();

                        Mapper.CreateMap<PageDTO, Page>();
                        Mapper.CreateMap<PageElementDTO, PageElement>();
                        Mapper.CreateMap<ElementDTO, Element>();
                        //Mappo la PageDTO in Page
                        page = Mapper.Map<PageDTO, Page>(pagedto);

                        Regex punt = new Regex(@"[\t\r\n\e\a._%+-/]");

                        page.Title = punt.Replace(page.Title.Replace("&nbsp;", "").Trim().Replace(" ", "_"), "_");

                        if (page.Publictitle != null && page.Contentid > 0 && page.Position > 0) {

                            page.Publictitle = EditorServices.ReplaceCharacters(page.Publictitle);

                            if (page.IsNew) {

                                // Salvo la Nuova pagina
                                HibernateHelper.Persist(page, session);

                                if (page.PageelementsList.Count == 0) {
                                    //Creo Le Page Elements in base alla struttura
                                    //Ricavo la lista degli elementi della struttura per generare i PageElement
                                    List<Element> structList = new List<Element>();
                                    structList = HibernateHelper.SelectCommand<Element>(session, " STRUCTUREID =" + page.Structureid);

                                    ISet<PageElement> PaElements = new HashedSet<PageElement>();
                                    foreach (Element el in structList) {

                                        PageElement PaElement = new PageElement();
                                        PaElement.Element = el;
                                        PaElement.Elementid = el.Elementid;
                                        PaElement.Page = page;
                                        PaElement.Pageid = page.Pageid;
                                        PaElement.Valore = EditorServices.ReplaceCharacters(el.Description);
                                        PaElement.IsNew = true;

                                        if (el.Elementtypeid == (int)ElementTypeEnum.RawHtml) {
                                            //solo RawHtml
                                            RawHtml raw = new RawHtml();
                                            raw.Value = EditorServices.ReplaceCharacters(el.Description);
                                            raw.IsNew = true;
                                            HibernateHelper.Persist(raw, session);
                                            PaElement.Rawhtmlid = raw.Rawhtmlid;
                                        }
                                        HibernateHelper.Persist(PaElement, session);
                                        PaElements.Add(PaElement);
                                    }
                                    page.PageElements = PaElements;
                                    PaElements = page.PageElements;
                                }

                                // Setto il padre  al pageid se è zero
                                if (page.Parentpageid == 0) {
                                    page.Parentpageid = page.Pageid;
                                } else {
                                    page.Parentpageid = page.Parentpageid;
                                }
                                // Setto skinID a null se è zero
                                if (page.Skinid == 0) {
                                    page.Skinid = null;
                                }
                                page.Dirty = true;
                                HibernateHelper.Persist(page, session);
                            } else
                                if (page.Dirty) {
                                    //Update della Pagina Esistente
                                    HibernateHelper.Persist(page, session);

                                    //Foreach delle pageelements
                                    foreach (PageElement el in page.PageelementsList) {
                                        el.Pageid = page.Pageid;
                                        if (el.Deleted) {
                                            page.PageElements.Remove(el);
                                            HibernateHelper.Persist(el, session);
                                        } else {
                                            el.Valore = EditorServices.ReplaceCharacters(el.Valore);
                                            HibernateHelper.Persist(el, session);
                                        }
                                    }
                                }
                        }
                        //Rimappo l'oggetto da restituire
                        Mapper.CreateMap<Page, PageDTO>();
                        Mapper.CreateMap<PageElement, PageElementDTO>();
                        Mapper.CreateMap<Element, ElementDTO>();
                        //Mappo la PageDTO in Page
                        pagedto = Mapper.Map<Page, PageDTO>(page);

                        transaction.Commit();

                    } catch (Exception ex) {
                        transaction.Rollback();
                        throw ex;
                    } finally {
                        session.Flush();
                        session.Close();
                    }
                }
            }
            //Setto lo stato del content a non allineato
            ContentServices contSvc = new ContentServices();
            contSvc.SetStateContent(pagedto.Contentid, (int)ContentStateEnum.NonAllineato);

            return pagedto;
        }
예제 #7
0
        public PageDTO MovePage(PageDTO pagedto)
        {
            using (ISession session = HibernateHelper.GetSession().OpenSession()) {
                ITransaction transaction = session.BeginTransaction();
                try {
                    if (pagedto.Parentpageid > 0) {
                        //Prendo i Figli del nuovo padre della pagina DTO
                        List<Page> Figli = new List<Page>();
                        Figli = EditorServices.GetPageByParent(session, pagedto.Contentid, pagedto.Parentpageid);

                        bool update = false;

                        //Aggiorno la posizione dei figli successivi al DTO

                        //Controllo se esiste un figlio in posizione 1

                        //var uone = (from u in Figli
                        //            where u.Position == 1
                        //            select u).FirstOrDefault<Page>();

                        int oldpos = 0;

                        var con = (from f in Figli
                                   where f.Pageid == pagedto.Pageid
                                   select f).FirstOrDefault<Page>();

                        if (con != null) {
                            oldpos = con.Position;
                        }
                        foreach (Page pg in Figli) {

                            if (pg.Pageid == pagedto.Pageid) {
                                oldpos = pg.Position;
                                pg.Position = pagedto.Position;
                                pg.Parentpageid = pagedto.Parentpageid;
                                pg.Dirty = true;
                                HibernateHelper.Persist(pg, session);
                                update = true;
                            } else
                                if (pg.Position > pagedto.Position) {
                                    pg.Position = pg.Position + 1;
                                    pg.Dirty = true;
                                    HibernateHelper.Persist(pg, session);
                                } else
                                    if (pg.Position <= pagedto.Position
                                        //    && pg.Position != 1
                                        && con != null) {
                                        if (pg.Position == pagedto.Position && oldpos > pagedto.Position) {
                                            pg.Position = pg.Position + 1;
                                        } else {
                                            pg.Position = pg.Position - 1;
                                        }
                                        pg.Dirty = true;
                                        HibernateHelper.Persist(pg, session);
                                    }

                        }

                        if (!update) {
                            Page page = new Page();
                            Mapper.CreateMap<PageDTO, Page>();
                            Mapper.CreateMap<PageElementDTO, PageElement>();
                            Mapper.CreateMap<ElementDTO, Element>();
                            //Mappo la PageDTO in Page
                            page = Mapper.Map<PageDTO, Page>(pagedto);

                            HibernateHelper.Persist(page, session);
                        }

                        transaction.Commit();

                        transaction = session.BeginTransaction();

                        Figli = EditorServices.GetPageByParent(session, pagedto.Contentid, pagedto.Parentpageid);

                        var child = from cd in Figli
                                    orderby cd.Position ascending
                                    select cd;

                        int position = 1;
                        foreach (Page ch in child) {

                            ch.Position = position;
                            ch.Dirty = true;
                            position++;
                            HibernateHelper.Persist(ch, session);
                        }

                        transaction.Commit();

                    }

                } catch (Exception ex) {
                    transaction.Rollback();
                    throw ex;
                } finally {
                    session.Flush();
                    session.Close();
                    transaction.Dispose();
                }

            }

            //Setto lo stato del content a non allineato
            ContentServices contSvc = new ContentServices();
            contSvc.SetStateContent(pagedto.Contentid, (int)ContentStateEnum.NonAllineato);

            return pagedto;
        }
예제 #8
0
        public void E_UpdateExistingPage()
        {
            // verifico il salvataggio delle modifiche al titolo
            page.Publictitle = "nuova pagina modificata";

            //valorizzo la proprietà ISDIRTY per forzare il salvataggio
            page.Dirty = true;

            int id = page.Pageid;

            page.PageelementsList[0].Valore = page.PageelementsList[0].Valore + " Modificato";
            page.PageelementsList[0].Dirty = true;

            page = svc.SavePage(page);

            Assert.AreEqual("nuova pagina modificata", page.Publictitle, "titolo non modificato!");
            Assert.AreEqual(id, page.Pageid, "creata nuova pagina!");
        }
예제 #9
0
        public void G_Move_Page3_to_Page7()
        {
            page3.Parentpageid = page7.Pageid;
            page3.Position = 1;
            page3.Dirty = true;

            page3 = svc.MovePage(page3);

            //Assert su Oggetto Restituito
            if (page3.Parentpageid == page1.Pageid) {
                Assert.Fail("La Page3 risulta ancora  figlia della Page1");
            }
            Assert.IsTrue(page3.Parentpageid == page7.Pageid, "La Page3 non risulta figlia della Page7");
            Assert.IsTrue(page3.Position == 1, "La Page3 non ha position = 1");

            //Assert su Oggetto Persistito
            PageDTO page3DB = new PageDTO();
            page3DB = svc.GetPage(page3.Pageid);
            //Assert su Oggetto Persistito
            if (page3DB.Parentpageid == page1.Pageid) {
                Assert.Fail("Sul DB La Page3 risulta ancora  figlia della Page1");
            }
            Assert.IsTrue(page3DB.Parentpageid == page7.Pageid, "Sul DB La Page3 non risulta figlia della Page7");
            Assert.IsTrue(page3DB.Position == 1, "Sul DB La Page3 non ha position = 1");

            page3 = page3DB;
        }
예제 #10
0
 public PageDTO ClonePage(PageDTO pagedto)
 {
     return ClonePage(pagedto, 0, "");
 }
예제 #11
0
        public void C_CreateValidPage()
        {
            // Verifico che una pagina con rif. Contenuto, Titolo pubblico, Struttura, Posizione venga salvata correttamente

            page = new PageDTO();

            page.Contentid = content.Contentid;
            page.Publictitle = "nuova pagina";
            page.Structureid = 1;
            page.Position = 1;

            //valorizzo la proprietà ISNEW per forzare la creazione
            page.IsNew = true;

            page = svc.SavePage(page);
            Assert.IsTrue(page.IsPersisted, "la pagina non risulta salvata: isPersisted is False!");
            Assert.IsTrue(page.Pageid > 0, "la pagina non ha un identificativo proprio!");
            Assert.IsNotNull(page.PageelementsList, "il sistema non ha creato gli elementi previsti dalla struttura");
        }
예제 #12
0
        public void I_GetInvalidPage()
        {
            // verifico il recupero della pagina appena cancellata tramite identificativo

            page = svc.GetPage(page.Pageid);

            PageDTO dad = svc.GetPage(page.Parentpageid);

            Assert.IsNotNull(page, "la pagina è stata cancellata fisicamente!");
            Assert.AreEqual(997868574865, dad.State, "la pagina non è stata cancellata!");
        }
예제 #13
0
        public void G_ClonePageStructureValue()
        {
            PageDTO newPage = new PageDTO();
            newPage.Publictitle = "copia di " + page.Publictitle;
            newPage.Contentid = page.Contentid;
            newPage.Structureid = page.Structureid;
            newPage.Position = page.Position++;

            //valorizzo la proprietà ISNEW per forzare la creazione (copia)
            newPage.IsNew = true;

            // Valorizzo il PageID al Padre da clonare
            newPage.Pageid = page.Pageid;

            newPage = svc.ClonePage(newPage);

            Assert.AreNotEqual(page, newPage, "la pagina è la stessa!");
            Assert.AreNotEqual(page.Pageid, newPage.Pageid, "stesso ID!");
            Assert.AreEqual(page.Structureid, newPage.Structureid, "struttura diversa!!");
        }
예제 #14
0
        public void F_ClonePageStructure()
        {
            // verifico la clonazione di una pagina ma non di tutti i suoi valori

            PageDTO newPage = new PageDTO();

            newPage.Publictitle = "copia di " + page.Publictitle;
            newPage.Contentid = page.Contentid;
            newPage.Structureid = page.Structureid;
            newPage.Position = page.Position++;  //lato flex è conveniente aggiungere la nuova pagina come ultima!

            //valorizzo la proprietà ISNEW per forzare la creazione (copia)
            newPage.IsNew = true;

            newPage = svc.SavePage(newPage);

            Assert.AreNotEqual(page, newPage, "la pagina è la stessa!");
            Assert.AreNotEqual(page.Pageid, newPage.Pageid, "stesso ID!");
            Assert.AreEqual(page.Structureid, newPage.Structureid, "struttura diversa!!");
        }
예제 #15
0
        public void E_Move_Page10_to_Page1()
        {
            page10.Parentpageid = page1.Pageid;
            page10.Position = 1;
            page10.Dirty = true;
            page10 = svc.MovePage(page10);

            //Assert su Oggetto Restituito
            if (page10.Parentpageid == page8.Pageid) {
                Assert.Fail("La Page10 risulta ancora  figlia della Page8");
            }
            Assert.IsTrue(page10.Parentpageid == page1.Pageid, "La Page10 non risulta figlia della Page1");
            Assert.IsTrue(page10.Position == 1, "La Page9 non ha position = 1");

            PageDTO page10DB = new PageDTO();
            page10DB = svc.GetPage(page10.Pageid);
            //Assert su Oggetto Persistito
            if (page10DB.Parentpageid == page8.Pageid) {
                Assert.Fail("Sul DB La page10 risulta ancora  figlia della Page8");
            }
            Assert.IsTrue(page10DB.Parentpageid == page1.Pageid, "Sul DB La Page10 non risulta figlia della Page1");
            Assert.IsTrue(page10DB.Position == 1, "Sul DB La Page10 non ha position = 1");

            page10 = page10DB;

            //Verifico se le posizioni sono cambiate ai figli del Page1
            PageDTO page2DB = new PageDTO();
            page2DB = svc.GetPage(page2.Pageid);
            if (page2DB.Position == page2.Position) {
                Assert.Fail("Sul DB la Page2 non ha incrementato la posizione");
            } else
                if (page2DB.Position != (page2.Position + 1)) {
                    Assert.Fail("Sul DB la Page2 non ha posizione " + (page2.Position + 1));
                }

            page2 = page2DB;

            PageDTO page3DB = new PageDTO();
            page3DB = svc.GetPage(page3.Pageid);
            if (page3DB.Position == page3.Position) {
                Assert.Fail("Sul DB la Page3 non ha incrementato la posizione");
            } else
                if (page3DB.Position != (page3.Position + 1)) {
                    Assert.Fail("Sul DB la Page3 non ha posizione " + (page3.Position + 1));
                }

            page3 = page3DB;

            PageDTO page4DB = new PageDTO();
            page4DB = svc.GetPage(page4.Pageid);
            if (page4DB.Position == page4.Position) {
                Assert.Fail("Sul DB la Page4 non ha incrementato la posizione");
            } else
                if (page4DB.Position != (page4.Position + 1)) {
                    Assert.Fail("Sul DB la Page4 non ha posizione " + (page4.Position + 1));
                }

            page4 = page4DB;

            PageDTO page5DB = new PageDTO();
            page5DB = svc.GetPage(page5.Pageid);
            if (page5DB.Position == page5.Position) {
                Assert.Fail("Sul DB la Page5 non ha incrementato la posizione");
            } else
                if (page5DB.Position != (page5.Position + 1)) {
                    Assert.Fail("Sul DB la Page5 non ha posizione " + (page5.Position + 1));
                }

            page5 = page5DB;

            PageDTO page8DB = new PageDTO();
            page8DB = svc.GetPage(page8.Pageid);
            if (page8DB.Position == page8.Position) {
                Assert.Fail("Sul DB la Page8 non ha incrementato la posizione");
            } else
                if (page8DB.Position != (page8.Position + 1)) {
                    Assert.Fail("Sul DB la Page8 non ha posizione " + (page8.Position + 1));
                }

            page8 = page8DB;
        }
예제 #16
0
        public void F_Move_Page8_to_Page5()
        {
            //In Coda
            page8.Parentpageid = page5.Pageid;
            page8.Position = 3;
            page8.Dirty = true;

            page8 = svc.MovePage(page8);
            //Assert su Oggetto Restituito
            if (page8.Parentpageid == page1.Pageid) {
                Assert.Fail("La Page8 risulta ancora  figlia della Page1");
            }
            Assert.IsTrue(page8.Parentpageid == page5.Pageid, "La Page8 non risulta figlia della Page5");
            Assert.IsTrue(page8.Position == 3, "La Page8 non ha position = 3");

            //Assert su Oggetto Persistito
            PageDTO page8DB = new PageDTO();
            page8DB = svc.GetPage(page8.Pageid);
            //Assert su Oggetto Persistito
            if (page8DB.Parentpageid == page1.Pageid) {
                Assert.Fail("Sul DB La Page8 risulta ancora  figlia della Page1");
            }
            Assert.IsTrue(page8DB.Parentpageid == page5.Pageid, "Sul DB La Page8 non risulta figlia della Page5");
            Assert.IsTrue(page8DB.Position == 3, "Sul DB La Page8 non ha position = 3");

            page8 = page8DB;

            //Verifico se le posizioni dei figli del Page5 sono cambiate
            PageDTO page6DB = new PageDTO();
            page6DB = svc.GetPage(page6.Pageid);
            if (page6DB.Position != page6.Position) {
                Assert.Fail("Sul DB la Page6 non ha posizione " + page6.Position);
            }

            page6 = page6DB;

            PageDTO page7DB = new PageDTO();
            page7DB = svc.GetPage(page7.Pageid);
            if (page7DB.Position != page7.Position) {
                Assert.Fail("Sul DB la Page7 non ha posizione " + page7.Position);
            }

            page7 = page7DB;
        }
예제 #17
0
        public Boolean DeletePage(PageDTO pagedto)
        {
            Boolean status = false;
            using (ISession session = HibernateHelper.GetSession().OpenSession()) {
                using (ITransaction transaction = session.BeginTransaction()) {
                    try {
                        Page page = new Page();
                        Mapper.CreateMap<PageDTO, Page>();
                        Mapper.CreateMap<PageElementDTO, PageElement>();
                        //Mappo la PageDTO in Page
                        page = Mapper.Map<PageDTO, Page>(pagedto);

                        //Prendo i Figli del padre della pagina DTO
                        List<Page> Figli = new List<Page>();
                        Figli = EditorServices.GetPageByParent(session, page.Contentid, page.Parentpageid);

                        //Sposto il Pagedto Salvato accodandolo all'ultima posizione del cestino
                        Page Cestino = new Page();
                        Cestino = EditorServices.GetBasket(session, page.Contentid);
                        int actualpos = 0;
                        if (Cestino != null) {
                            List<Page> Cestinati = new List<Page>();
                            Cestinati = EditorServices.GetPageByParent(session, page.Contentid, Cestino.Pageid);
                            if (Cestinati.Count > 0) {
                                actualpos = (from c in Cestinati
                                             select c.Position).Max();
                            }
                        }

                        //Decremento la posizione dei figli successivi al DTO
                        foreach (Page pg in Figli) {
                            if (pg.Position > pagedto.Position) {
                                pg.Position = pg.Position - 1;
                                pg.Dirty = true;
                                HibernateHelper.Persist(pg, session);
                            } else
                                if (pg.Pageid == page.Pageid) {
                                    page = pg;
                                    pg.Parentpageid = Cestino.Pageid;
                                    pg.Position = actualpos + 1;
                                    pg.Dirty = true;
                                    pg.Deleted = false;
                                    HibernateHelper.Persist(pg, session);
                                }
                        }

                        transaction.Commit();
                        status = true;
                    } catch (Exception ex) {
                        transaction.Rollback();
                        status = false;
                        throw ex;
                    } finally {
                        session.Flush();
                        session.Close();
                    }
                }
            }

            //Setto lo stato del content a non allineato
            ContentServices contSvc = new ContentServices();
            contSvc.SetStateContent(pagedto.Contentid, (int)ContentStateEnum.NonAllineato);

            return status;
        }
예제 #18
0
        private void H_Move_Child_Page1()
        {
            // Sposto la page 2 da pos 2 in pos 4
            page2.Parentpageid = page1.Pageid;
            page2.Position = 4;
            page2.Dirty = true;

            page2 = svc.MovePage(page2);

            Assert.IsTrue(page2.Parentpageid == page1.Pageid, "La Page2 non risulta figlia della Page1");
            Assert.IsTrue(page2.Position == 4, "La Page2 non ha position = 4");

            //La 10 rimane invariata
            PageDTO page10DB = new PageDTO();
            page10DB = svc.GetPage(page10.Pageid);
            //Assert su Oggetto Persistito
            Assert.IsTrue(page10DB.Parentpageid == page1.Pageid, "Sul DB La Page10 non risulta figlia della Page1");
            Assert.IsTrue(page10DB.Position == 1, "Sul DB La Page10 non ha position = 1");

            page10 = page10DB;

            //la 3 passa a 2
            PageDTO page3DB = new PageDTO();
            page3DB = svc.GetPage(page3.Pageid);
            //Assert su Oggetto Persistito
            Assert.IsTrue(page3DB.Parentpageid == page1.Pageid, "Sul DB La Page3 non risulta figlia della Page1");
            Assert.IsTrue(page3DB.Position == 2, "Sul DB La Page3 non ha position = 2");

            page3 = page3DB;

            // la 4 passa a 3
            PageDTO page4DB = new PageDTO();
            page4DB = svc.GetPage(page4.Pageid);
            //Assert su Oggetto Persistito
            Assert.IsTrue(page4DB.Parentpageid == page1.Pageid, "Sul DB La Page4 non risulta figlia della Page1");
            Assert.IsTrue(page4DB.Position ==3, "Sul DB La Page4 non ha position = 3");

            page4 = page4DB;

            //la 2 passa a 4
            PageDTO page2DB = new PageDTO();
            page2DB = svc.GetPage(page2.Pageid);
            //Assert su Oggetto Persistito
            Assert.IsTrue(page2DB.Parentpageid == page1.Pageid, "Sul DB La Page2 non risulta figlia della Page1");
            Assert.IsTrue(page2DB.Position == 4, "Sul DB La Page2 non ha position = 4");

            page2 = page2DB;

            //la 5 rimane a 5
            PageDTO page5DB = new PageDTO();
            page5DB = svc.GetPage(page5.Pageid);
            //Assert su Oggetto Persistito
            Assert.IsTrue(page5DB.Parentpageid == page1.Pageid, "Sul DB La Page5 non risulta figlia della Page1");
            Assert.IsTrue(page5DB.Position == 5, "Sul DB La Page5 non ha position = 5");

            page5 = page5DB;

            //Sposto la Pagina 3 dalla posizione 2 alla posizione 3
            page3.Parentpageid = page1.Pageid;
            page3.Position = 3;
            page3.Dirty = true;

            page3 = svc.MovePage(page3);

            Assert.IsTrue(page3.Parentpageid == page1.Pageid, "La Page3 non risulta figlia della Page1");
            Assert.IsTrue(page3.Position == 3, "La Page3 non ha position = 3");

            // la 10 rimane 1
            //La 10 rimane invariata
            page10DB = new PageDTO();
            page10DB = svc.GetPage(page10.Pageid);
            //Assert su Oggetto Persistito
            Assert.IsTrue(page10DB.Parentpageid == page1.Pageid, "Sul DB La Page10 non risulta figlia della Page1");
            Assert.IsTrue(page10DB.Position == 1, "Sul DB La Page10 non ha position = 1");

            page10 = page10DB;

            // la 4 passa a 2
            page4DB = new PageDTO();
            page4DB = svc.GetPage(page4.Pageid);
            //Assert su Oggetto Persistito
            Assert.IsTrue(page4DB.Parentpageid == page1.Pageid, "Sul DB La Page4 non risulta figlia della Page1");
            Assert.IsTrue(page4DB.Position == 2, "Sul DB La Page4 non ha position = 2");

            page4 = page4DB;

            // la 3 passa a 3
            page3DB = new PageDTO();
            page3DB = svc.GetPage(page3.Pageid);
            //Assert su Oggetto Persistito
            Assert.IsTrue(page3DB.Parentpageid == page1.Pageid, "Sul DB La Page3 non risulta figlia della Page1");
            Assert.IsTrue(page3DB.Position == 3, "Sul DB La Page3 non ha position = 3");

            page3 = page3DB;

            // la 2 rimane 4
            page2DB = new PageDTO();
            page2DB = svc.GetPage(page2.Pageid);
            //Assert su Oggetto Persistito
            Assert.IsTrue(page2DB.Parentpageid == page1.Pageid, "Sul DB La Page2 non risulta figlia della Page1");
            Assert.IsTrue(page2DB.Position == 4, "Sul DB La Page2 non ha position = 4");

            page2 = page2DB;

            // la 5 rimane 5

            page5DB = new PageDTO();
            page5DB = svc.GetPage(page5.Pageid);
            //Assert su Oggetto Persistito
            Assert.IsTrue(page5DB.Parentpageid == page1.Pageid, "Sul DB La Page5 non risulta figlia della Page1");
            Assert.IsTrue(page5DB.Position == 5, "Sul DB La Page5 non ha position = 5");

            page5 = page5DB;

            //Sposto la Pagina 3 dalla posizione 2 alla posizione 3
            page3.Parentpageid = page1.Pageid;
            page3.Position = 2;
            page3.Dirty = true;

            page3 = svc.MovePage(page3);

            // la 10 rimane 1
            //La 10 rimane invariata
            page10DB = new PageDTO();
            page10DB = svc.GetPage(page10.Pageid);
            //Assert su Oggetto Persistito
            Assert.IsTrue(page10DB.Parentpageid == page1.Pageid, "Sul DB La Page10 non risulta figlia della Page1");
            Assert.IsTrue(page10DB.Position == 1, "Sul DB La Page10 non ha position = 1");

            page10 = page10DB;

            // la 3 passa a 2
            page3DB = new PageDTO();
            page3DB = svc.GetPage(page3.Pageid);
            //Assert su Oggetto Persistito
            Assert.IsTrue(page3DB.Parentpageid == page1.Pageid, "Sul DB La Page3 non risulta figlia della Page1");
            Assert.IsTrue(page3DB.Position == 2, "Sul DB La Page3 non ha position = 2");

            page3 = page3DB;

            // la 4 passa a 3
            page4DB = new PageDTO();
            page4DB = svc.GetPage(page4.Pageid);
            //Assert su Oggetto Persistito
            Assert.IsTrue(page4DB.Parentpageid == page1.Pageid, "Sul DB La Page4 non risulta figlia della Page1");
            Assert.IsTrue(page4DB.Position == 3, "Sul DB La Page4 non ha position = 3");

            page4 = page4DB;

            // la 2 rimane 4
            page2DB = new PageDTO();
            page2DB = svc.GetPage(page2.Pageid);
            //Assert su Oggetto Persistito
            Assert.IsTrue(page2DB.Parentpageid == page1.Pageid, "Sul DB La Page2 non risulta figlia della Page1");
            Assert.IsTrue(page2DB.Position == 4, "Sul DB La Page2 non ha position = 4");

            page2 = page2DB;

            // la 5 rimane 5

            page5DB = new PageDTO();
            page5DB = svc.GetPage(page5.Pageid);
            //Assert su Oggetto Persistito
            Assert.IsTrue(page5DB.Parentpageid == page1.Pageid, "Sul DB La Page5 non risulta figlia della Page1");
            Assert.IsTrue(page5DB.Position == 5, "Sul DB La Page5 non ha position = 5");

            page5 = page5DB;
        }
예제 #19
0
        public PageDTO GetPage(int pageId)
        {
            using (ISession session = HibernateHelper.GetSession().OpenSession()) {
                using (ITransaction transaction = session.BeginTransaction()) {
                    try {
                        Page page = new Page();
                        page = EditorServices.GetPageById(pageId, session);

                        Mapper.CreateMap<Page, PageDTO>();
                        Mapper.CreateMap<PageElement, PageElementDTO>();
                        Mapper.CreateMap<Element, ElementDTO>();

                        PageDTO pageToReturn = new PageDTO();
                        pageToReturn = Mapper.Map<Page, PageDTO>(page);
                        pageToReturn.Path = GetPathPage(page.Parentpageid);
                        if (page.Level != 0) {
                            pageToReturn.Path = pageToReturn.Path + @"\" + page.Publictitle;
                        }
                        return pageToReturn;

                    } catch (Exception ex) {
                        throw ex;
                    } finally {
                        session.Flush();
                        session.Close();
                    }
                }

            }
        }
예제 #20
0
        public PageDTO ClonePage(PageDTO pagedto, int idItemAmm, string FolderToSave)
        {
            using (ISession session = HibernateHelper.GetSession().OpenSession()) {
                using (ITransaction transaction = session.BeginTransaction()) {
                    try {
                        Page page = new Page();

                        Mapper.CreateMap<PageDTO, Page>();
                        Mapper.CreateMap<PageElementDTO, PageElement>();
                        //Mappo la PageDTO in Page
                        page = Mapper.Map<PageDTO, Page>(pagedto);

                        //Tengo in memoria il pageid da clonare
                        int pageId = page.Pageid;

                        //Salvo la nuova Pagina
                        HibernateHelper.Persist(page, session);

                        //Ricavo i PageElements del padre
                        List<PageElement> CloneElements = HibernateHelper.SelectCommand<PageElement>(session, new string[] { "Pageid" }, new object[] { pageId }, new Operators[] { Operators.Eq });

                        //Ciclo  sui CloneElements
                        ISet<PageElement> ChildElements = new HashedSet<PageElement>();
                        foreach (PageElement el in CloneElements) {

                            PageElement child = new PageElement();
                            child.IsNew = true;
                            child.Page = page;
                            child.Pageid = page.Pageid;
                            child.Valore = EditorServices.ReplaceCharacters(el.Valore);
                            child.Filename = el.Filename;
                            child.Element = el.Element;
                            child.Elementid = el.Elementid;
                            if (el.Element.ElementType.Elementtypeid == (int)ElementTypeEnum.RawHtml) {

                                //Get RawHtml Clone
                                RawHtml cloneraw = new RawHtml();
                                cloneraw = HibernateHelper.SelectIstance<RawHtml>(session, new string[] { "Rawhtmlid" }, new object[] { el.Rawhtmlid }, new Operators[] { Operators.Eq });

                                RawHtml childraw = new RawHtml();
                                childraw.IsNew = true;
                                childraw.Value = EditorServices.ReplaceCharacters(cloneraw.Value);
                                SaveRawHtml(childraw, FolderToSave);
                                child.Rawhtmlid = childraw.Rawhtmlid;

                            }

                            HibernateHelper.Persist(child, session);
                            ChildElements.Add(child);
                        }

                        page.PageElements = ChildElements;
                        ChildElements = page.PageElements;

                        // Setto il padre  al pageid se è zero
                        if (page.Parentpageid == 0) {
                            page.Parentpageid = page.Pageid;
                        } else {
                            page.Parentpageid = page.Parentpageid;
                        }
                        // Setto skinID a null se è zero
                        if (page.Skinid == 0) {
                            page.Skinid = null;
                        }
                        page.Dirty = true;
                        HibernateHelper.Persist(page, session);

                        //Rimappo l'oggetto da restituire
                        Mapper.CreateMap<Page, PageDTO>();
                        Mapper.CreateMap<PageElement, PageElementDTO>();
                        Mapper.CreateMap<Element, ElementDTO>();
                        //Mappo la PageDTO in Page
                        pagedto = Mapper.Map<Page, PageDTO>(page);

                        transaction.Commit();

                    } catch (Exception ex) {
                        transaction.Rollback();
                        throw ex;
                    } finally {
                        session.Flush();
                        session.Close();
                    }
                }
            }

            //Setto lo stato del content a non allineato
            ContentServices contSvc = new ContentServices();
            contSvc.SetStateContent(pagedto.Contentid, (int)ContentStateEnum.NonAllineato);

            return pagedto;
        }
예제 #21
0
        public void D_GetExistingPage()
        {
            // verifico il recupero di una pagina tramite identificativo

            page = svc.GetPage(page.Pageid);

            Assert.IsNotNull(page, "la pagina non è stata trovata!");
        }