Inheritance: PersistenteDTO
Exemplo n.º 1
0
        public WidgetElementDTO SaveWidgetElement(WidgetElementDTO wid)
        {
            using (ISession session = HibernateHelper.GetSession().OpenSession()) {
                using (ITransaction transaction = session.BeginTransaction()) {
                    try {
                        WidgetElement widget = new WidgetElement();

                        Mapper.CreateMap<WidgetElementDTO, WidgetElement>();
                        Mapper.CreateMap<ElementDTO, Element>();

                        WidgetElementDTO widgetDTO = new WidgetElementDTO();
                        if (wid.IsNew || wid.Deleted) {
                            widget = Mapper.Map<WidgetElementDTO, WidgetElement>(wid);
                        } else {
                            widgetDTO = GetWidgetElement(wid.Widgetelementid);
                            widget = Mapper.Map<WidgetElementDTO, WidgetElement>(widgetDTO);
                        }

                        if (widget.Type == 0) {
                            widget.Type = 1;
                        }
                        if (widget.Name != null && widget.Widgetid > 0 && widget.Position > 0) {

                            if (wid.Dirty) {
                                if (widget.Name != wid.Name) {
                                    //Sto rinominando il link
                                    widget.Name = EditorServices.ReplaceCharacters(wid.Name);
                                } else {
                                    if (widget.Valore != wid.Valore) {
                                        widget.Valore = wid.Valore;
                                    }
                                }
                            }
                            widget.Dirty = wid.Dirty;
                            widget.Deleted = wid.Deleted;
                            widget.IsNew = wid.IsNew;

                            HibernateHelper.Persist(widget, session);

                        }

                        Mapper.CreateMap<WidgetElement, WidgetElementDTO>();
                        Mapper.CreateMap<Element, ElementDTO>();

                        //Mappo la PageDTO in Page
                        wid = Mapper.Map<WidgetElement, WidgetElementDTO>(widget);

                        transaction.Commit();

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

                return wid;
            }
        }
Exemplo n.º 2
0
        public WidgetDTO SaveWidget(WidgetDTO Widgetdto)
        {
            using (ISession session = HibernateHelper.GetSession().OpenSession()) {
                using (ITransaction transaction = session.BeginTransaction()) {
                    try {

                        Widget widget = new Widget();

                        Mapper.CreateMap<WidgetDTO, Widget>();
                        Mapper.CreateMap<WidgetElementDTO, WidgetElement>();
                        Mapper.CreateMap<ElementDTO, Element>();

                        widget = Mapper.Map<WidgetDTO, Widget>(Widgetdto);

                        Regex punt = new Regex(@"[\t\r\n\e\a._%+-/]");
                        widget.Title = punt.Replace(widget.Title.Replace("&nbsp;", "").Trim().Replace(" ", "_"), "_");

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

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

                            HibernateHelper.Persist(widget, session);

                            //Foreach delle WidgetElements
                            foreach (WidgetElement el in widget.WidgetElementsList) {
                                el.Widgetid = widget.Widgetid;
                                if (el.Type == 0) {
                                    el.Type = 1;
                                }
                                if (el.Deleted) {
                                    HibernateHelper.Persist(el, session);
                                    widget.WidgetElementsList.Remove(el);
                                } else {
                                    HibernateHelper.Persist(el, session);
                                }
                            }
                        }

                        //Rimappo l'oggetto da restituire
                        Mapper.CreateMap<Widget, WidgetDTO>();
                        Mapper.CreateMap<WidgetElement, WidgetElementDTO>();
                        Mapper.CreateMap<Element, ElementDTO>();

                        //Mappo la PageDTO in Page
                        Widgetdto = Mapper.Map<Widget, WidgetDTO>(widget);

                        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(Widgetdto.Contentid, (int)ContentStateEnum.NonAllineato);

            return Widgetdto;
        }