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; } }
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(" ", "").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; }