Inheritance: Persistente
Ejemplo n.º 1
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;
        }
Ejemplo n.º 2
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;
        }
Ejemplo n.º 3
0
        public Boolean PublishPage(int pageID, string pathIdItem)
        {
            Boolean status = false;
            using (ISession session = HibernateHelper.GetSession().OpenSession()) {
                using (ITransaction transaction = session.BeginTransaction()) {
                    try {
                        string fileserver = ConfigurationSettings.AppSettings["FileServer"];
                        Page pg = new Page();
                        pg = EditorServices.GetPageById(pageID, session);

                        //creo una cartella sul fileserver
                        string pathCont = Path.Combine(fileserver, pg.Content.Contentid.ToString() + "_" + pg.Content.Title.Trim().Replace(" ", "_"));
                        if (!Directory.Exists(pathCont)) {
                            Directory.CreateDirectory(pathCont);
                        }

                        EditorServices.PublicPage(pg, pathCont, pathIdItem, " ");

                    } catch (Exception ex) {
                        transaction.Rollback();
                        throw ex;
                    } finally {
                        session.Flush();
                        session.Close();
                        status = true;
                    }
                }
            } return status;
        }
Ejemplo n.º 4
0
        public string GetPathPage(int pageID)
        {
            string path = "";

            using (ISession session = HibernateHelper.GetSession().OpenSession()) {
                using (ITransaction transaction = session.BeginTransaction()) {
                    try {

                        Page Page = new Page();
                        Page = EditorServices.GetPageById(pageID, session);

                        while (Page.Pageid != Page.Parentpageid && Page.Level != 0) {

                            if (Page.State != 99) {//Evito il Cestino
                                path = @"\" + Page.Publictitle + path;
                            }

                            Page = EditorServices.GetPageById(Page.Parentpageid, session);
                        }

                        if (Page.State != 99) {//Evito il Cestino
                            path = @"\" + Page.Publictitle + path;
                        }

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

            }

            return path;
        }
Ejemplo n.º 5
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;
        }
Ejemplo n.º 6
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();
                    }
                }

            }
        }
Ejemplo n.º 7
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;
        }
Ejemplo n.º 8
0
        public virtual bool Equals(Page obj)
        {
            if (obj == null) return false;

            if (Equals(Pageid, obj.Pageid) == false)
                return false;

            if (Equals(Parentpageid, obj.Parentpageid) == false)
                return false;

            if (Equals(Contentid, obj.Contentid) == false)
                return false;

            if (Equals(Skinid, obj.Skinid) == false)
                return false;

            if (Equals(Title, obj.Title) == false)
                return false;

            if (Equals(Publictitle, obj.Publictitle) == false)
                return false;

            if (Equals(Position, obj.Position) == false)
                return false;

            if (Equals(State, obj.State) == false)
                return false;

            if (Equals(Structureid, obj.Structureid) == false)
                return false;

            return true;
        }