public static Guid InsertNewWidget(Guid pageId, Guid widgetId, string langCode) { try { WidgetElement widget = WidgetSection.CachedInstance.Widgets.Cast <WidgetElement>().Where(w => w.Id == widgetId).Single(); HitblWidgetInstanceIn newWidgetIns = new HitblWidgetInstanceIn(); newWidgetIns.InsId = Guid.NewGuid(); newWidgetIns.InsColumnNo = 0; newWidgetIns.InsCreatedDate = newWidgetIns.InsLastUpdate = DateTime.Now; newWidgetIns.InsShowAfterInsert = 0; newWidgetIns.InsOrderNo = 0; newWidgetIns.InsPagId = pageId; newWidgetIns.InsXmlStateData = widget.Settings.Value; newWidgetIns.WdgId = widgetId; newWidgetIns.Save(); HitblWidgetInstanceTextWit newWidgetInsTxt = new HitblWidgetInstanceTextWit(); newWidgetInsTxt.InsId = newWidgetIns.InsId; newWidgetInsTxt.WitLangCode = langCode; newWidgetInsTxt.WitTitle = GuiLanguage.GetGuiLanguage("WidgetsBase").GetString(widget.TitleKey); newWidgetInsTxt.Save(); SPs.HispMoveWidgetInstance(newWidgetIns.InsId, 0, 0).Execute(); return(newWidgetIns.InsId); } catch (Exception ex) { throw ex; } }
/// <summary> /// Loads the contents of the specified filename in the given <see cref="Desktop"/> instance. /// </summary> /// <param name="desktop">The desktop.</param> /// <param name="filename">The filename.</param> public static void Load(Desktop desktop, string filename) { XElement root = LoadFromFile(filename); if (root == null) { return; } // Widget Deserialization IEnumerable <XElement> widgetsXML = root.Elements("WidgetElements").Elements("WidgetElement"); foreach (XElement widgetXML in widgetsXML) { Guid id = new Guid(widgetXML.Element("Id").Value); WidgetElement item = DeserializeWidget(widgetXML, id, 0, 0); desktop.AddElement(item, item.GetPosition()); } // Shortcut Deserialization IEnumerable <XElement> shortcutsXML = root.Elements("ShortcutElements").Elements("ShortcutElement"); int ti = 0; foreach (XElement shortcutXML in shortcutsXML) { Guid id = new Guid(shortcutXML.Element("Id").Value); ShortcutElement item = DeserializeShortcut(shortcutXML, id, 0, 0); item.TabIndex = ++ti; desktop.AddElement(item, item.GetPosition()); } }
protected override void OnInit(EventArgs e) { base.OnInit(e); try { bool showWidget = true; if (!string.IsNullOrEmpty(WidgetInstance.INS_ViewRoles) && !UserDataContext.GetUserDataContext().IsAdmin) { var userRoles = UserDataContext.GetUserDataContext().UserRoles.ToList().ConvertAll(x => x.ToLower()); showWidget = Array.Exists(WidgetInstance.INS_ViewRoles.Split(Constants.TAG_DELIMITER), x => userRoles.Contains(x.ToLower())); } if (showWidget) { widgetConfig = WidgetSection.CachedInstance.Widgets.Cast <WidgetElement>().Where(w => w.Id == WidgetInstance.WDG_ID).Single(); Control widget = LoadControl(widgetConfig.Control); ((WidgetBase)widget).WidgetHost = this; if (!IsReadOnly) { widget.ID = "Widget" + WidgetInstance.INS_ID.ToString().Replace("-", "_"); } else { widget.ID = "W" + WidgetInstance.INS_ColumnNo + WidgetInstance.INS_OrderNo; } WBP.Controls.Add(widget); // Add drag & drop behaviour if (!IsReadOnly && !WidgetInstance.INS_IsFixed || UserDataContext.GetUserDataContext().IsAdmin) { CustomDragDrop.CustomFloatingBehaviorExtender customFloatingBehaviorExtender = new CustomDragDrop.CustomFloatingBehaviorExtender(); customFloatingBehaviorExtender.ID = "WidgetFloatingBehavior"; customFloatingBehaviorExtender.DragHandleID = "WidgetHeader"; customFloatingBehaviorExtender.TargetControlID = "W"; WBP.Controls.Add(customFloatingBehaviorExtender); } } else { Visible = false; } } catch (Exception ex) { LogManager.WriteEntry(ex); WBP.Controls.Add(new LiteralControl(ex.Message)); } WBP.ID = null; }
protected void RepWidgetsItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { WidgetElement widget = (WidgetElement)e.Item.DataItem; e.Item.ID = widget.Id.ToString(); Literal name = (Literal)e.Item.FindControl("LitName"); name.Text = GuiLanguage.GetGuiLanguage("WidgetsBase").GetString(widget.TitleKey); TextBox groupId = (TextBox)e.Item.FindControl("TxtGroupId"); groupId.Text = widget.GroupId.ToString(); TextBox orderKey = (TextBox)e.Item.FindControl("TxtOrderKey"); orderKey.Text = widget.OrderKey.ToString(); TextBox roles = (TextBox)e.Item.FindControl("TxtRoles"); roles.Text = widget.Roles; if (string.IsNullOrEmpty(roles.Text)) { ((HtmlTableRow)e.Item.FindControl("WidgetRow")).Attributes.Add("style", "background-color:#FFEEEE;"); } else { ((HtmlTableRow)e.Item.FindControl("WidgetRow")).Attributes.Add("style", "background-color:#EEFFEE;"); } TextBox communities = (TextBox)e.Item.FindControl("TxtCommunities"); communities.Text = widget.Communities; TextBox pageTypes = (TextBox)e.Item.FindControl("TxtPageTypes"); pageTypes.Text = widget.PageTypes; TextBox settings = (TextBox)e.Item.FindControl("TxtSettings"); settings.Text = widget.Settings.Value; if (userDataContext.UserID != Constants.ADMIN_USERID.ToGuid()) { communities.ReadOnly = true; communities.CssClass = "CSB_admin_readonly"; pageTypes.ReadOnly = true; pageTypes.CssClass = "CSB_admin_readonly"; settings.ReadOnly = true; settings.CssClass = "CSB_admin_readonly"; } } }
protected void OnWidgetItemDataBound(object sender, RepeaterItemEventArgs e) { WidgetElement widget = (WidgetElement)e.Item.DataItem; Panel widgetTemplate = (Panel)e.Item.FindControl("WT"); widgetTemplate.Attributes.Add("InstanceId", widget.Id.ToString()); widgetTemplate.Attributes.Add("IsTemplate", "true"); ((Literal)e.Item.FindControl("LitTitle")).Text = (new TextControl() { LanguageFile = widget.LocalizationBaseFileName, TextKey = widget.TitleKey }).Text; ((Literal)e.Item.FindControl("LitDesc")).Text = (new TextControl() { LanguageFile = widget.LocalizationBaseFileName, TextKey = widget.DescriptionKey }).Text; }
public void AddWidgetInstanceByObjectType(string objectId, string objectType, string pageId, int column, int row) { if (ActionValidator.IsValid(ActionValidator.ActionTypeEnum.AddNewWidget)) { Guid communityId = DataAccess.Business.Utils.GetCommunityIdFromPage(pageId.ToGuid()); if ((DataObject.GetUserAccess(UserDataContext.GetUserDataContext(), communityId, communityId, Common.Helper.GetObjectTypeNumericID("Community")) & ObjectAccessRight.Update) == ObjectAccessRight.Update) { Guid widgetId = Common.Helper.GetObjectType(objectType).DetailWidgetId; WidgetElement widget = WidgetSection.CachedInstance.Widgets.Cast <WidgetElement>().Where(w => w.Id == widgetId).Single(); HitblWidgetInstanceIn widgetInstance = new HitblWidgetInstanceIn(); widgetInstance.InsId = Guid.NewGuid(); widgetInstance.InsColumnNo = column; widgetInstance.InsCreatedDate = widgetInstance.InsLastUpdate = DateTime.Now; widgetInstance.InsShowAfterInsert = 0; widgetInstance.InsOrderNo = row; widgetInstance.InsPagId = new Guid(pageId); widgetInstance.InsXmlStateData = string.Format("<root><ObjectType>{0}</ObjectType><ByUrl>False</ByUrl><Source>-1</Source><ObjectID>{1}</ObjectID></root>", Common.Helper.GetObjectType(objectType).Id, objectId); widgetInstance.WdgId = widgetId; widgetInstance.WtpId = Constants.DEFAULT_LAYOUTID.ToGuid(); widgetInstance.InsHideIfNoContent = true; if (!string.IsNullOrEmpty(widget.OutputTemplates)) { string[] outputTemplates = widget.OutputTemplates.Split(';'); widgetInstance.InsOutputTemplate = outputTemplates[0].ToGuid(); } widgetInstance.Save(); HitblWidgetInstanceTextWit widgetInstanceText = new HitblWidgetInstanceTextWit(); widgetInstanceText.InsId = widgetInstance.InsId; widgetInstanceText.WitLangCode = "de-CH"; widgetInstanceText.WitTitle = "##OBJ_TITLE##"; widgetInstanceText.Save(); SPs.HispWidgetInstanceReorderByPageColumn(new Guid(pageId), widgetInstance.InsColumnNo).Execute(); } } }
private static WidgetElement DeserializeWidget(XElement itemXML, Guid id, double offsetX, double offsetY) { WidgetElement item = (WidgetElement)Activator.CreateInstance(Type.GetType(itemXML.Element("Type").Value)); item.ShowMinimizeButton = Boolean.Parse(itemXML.Element("ShowMinimizeButton").Value); item.StartupLocation = StartupPosition.Manual; item.Move(Double.Parse(itemXML.Element("Left").Value, CultureInfo.InvariantCulture) + offsetX, Double.Parse(itemXML.Element("Top").Value, CultureInfo.InvariantCulture) + offsetY); item.SetZIndex(Int32.Parse(itemXML.Element("zIndex").Value)); WindowState widgetState = (WindowState)Enum.Parse(typeof(WindowState), itemXML.Element("WidgetState").Value as String); item.Width = Double.Parse(itemXML.Element("Width").Value, CultureInfo.InvariantCulture); item.Height = Double.Parse(itemXML.Element("Height").Value, CultureInfo.InvariantCulture); if (widgetState == WindowState.Minimized) { item.WidgetState = widgetState; } return(item); }
public void AddWidgetInstance(string widgetId, string pageId, int column, int row) { if (ActionValidator.IsValid(ActionValidator.ActionTypeEnum.AddNewWidget)) { Guid communityId = DataAccess.Business.Utils.GetCommunityIdFromPage(pageId.ToGuid()); if ((DataObject.GetUserAccess(UserDataContext.GetUserDataContext(), communityId, communityId, Common.Helper.GetObjectTypeNumericID("Community")) & ObjectAccessRight.Update) == ObjectAccessRight.Update) { WidgetElement widget = WidgetSection.CachedInstance.Widgets.Cast <WidgetElement>().Where(w => w.Id == widgetId.ToGuid()).Single(); HitblWidgetInstanceIn widgetInstance = new HitblWidgetInstanceIn(); widgetInstance.InsId = Guid.NewGuid(); widgetInstance.InsColumnNo = column; widgetInstance.InsCreatedDate = widgetInstance.InsLastUpdate = DateTime.Now; widgetInstance.InsShowAfterInsert = (int)widget.ShowAfterInsert; widgetInstance.InsOrderNo = row; widgetInstance.InsPagId = new Guid(pageId); widgetInstance.InsXmlStateData = widget.Settings.Value; widgetInstance.WdgId = widgetId.ToGuid(); widgetInstance.WtpId = Constants.DEFAULT_LAYOUTID.ToGuid(); widgetInstance.InsHideIfNoContent = true; if (!string.IsNullOrEmpty(widget.OutputTemplates)) { string[] outputTemplates = widget.OutputTemplates.Split(';'); widgetInstance.InsOutputTemplate = outputTemplates[0].ToGuid(); } widgetInstance.Save(); HitblWidgetInstanceTextWit widgetInstanceText = new HitblWidgetInstanceTextWit(); widgetInstanceText.InsId = widgetInstance.InsId; widgetInstanceText.WitLangCode = "de-CH"; widgetInstanceText.WitTitle = GuiLanguage.GetGuiLanguage(widget.LocalizationBaseFileName).GetString(widget.TitleKey); widgetInstanceText.Save(); SPs.HispWidgetInstanceReorderByPageColumn(new Guid(pageId), widgetInstance.InsColumnNo).Execute(); } } }
public static void CreateDefaultWidgets(Guid pageId, string pageType, string page, string langCode) { XmlDocument xmlDefaultWidgets = new XmlDocument(); StreamReader sr = new StreamReader(HttpContext.Current.Server.MapPath("/Configurations/DefaultWidgets.config")); xmlDefaultWidgets.LoadXml(sr.ReadToEnd()); sr.Close(); XmlNodeList xmlLayoutCols = xmlDefaultWidgets.SelectNodes(string.Format("//root/Community[@pageType='{0}' and @page='{1}']/Column", pageType, page)); foreach (XmlNode xmlLayoutCol in xmlLayoutCols) { int intColNr = Convert.ToInt32(xmlLayoutCol.Attributes["number"].Value); XmlNodeList xmlWidgtes = xmlLayoutCol.SelectNodes("widget"); int intOrderNr = 0; foreach (XmlNode xmlWidget in xmlWidgtes) { bool isFixed = false; bool hideIfNoContent = false; string roleVisibility = string.Empty; string templateId = string.Empty; string outputTemplate = string.Empty; string localizationBaseFileName = string.Empty; string titleKey = string.Empty; if (xmlWidget.Attributes["IsFixed"] != null) { bool.TryParse(xmlWidget.Attributes["IsFixed"].Value, out isFixed); } if (xmlWidget.Attributes["HideIfNoContent"] != null) { bool.TryParse(xmlWidget.Attributes["HideIfNoContent"].Value, out hideIfNoContent); } if (xmlWidget.Attributes["ViewRoles"] != null) { roleVisibility = xmlWidget.Attributes["ViewRoles"].Value.Replace(',', Constants.TAG_DELIMITER); } if (xmlWidget.Attributes["WTP_ID"] != null) { templateId = xmlWidget.Attributes["WTP_ID"].Value; } if (xmlWidget.Attributes["OutputTemplate"] != null) { outputTemplate = xmlWidget.Attributes["OutputTemplate"].Value; } if (xmlWidget.Attributes["LocalizationBaseFileName"] != null) { localizationBaseFileName = xmlWidget.Attributes["LocalizationBaseFileName"].Value; } if (xmlWidget.Attributes["TitleKey"] != null) { titleKey = xmlWidget.Attributes["TitleKey"].Value; } Guid widgetId = new Guid(xmlWidget.Attributes["id"].Value); string predefinedContent = string.Empty; if (xmlWidget.HasChildNodes) { predefinedContent = xmlWidget.InnerText; } WidgetElement widget = WidgetSection.CachedInstance.Widgets.Cast <WidgetElement>().Where(w => w.Id == widgetId).Single(); HitblWidgetInstanceIn newWidgetIns = new HitblWidgetInstanceIn(); newWidgetIns.InsId = Guid.NewGuid(); newWidgetIns.InsColumnNo = intColNr; newWidgetIns.InsCreatedDate = newWidgetIns.InsLastUpdate = DateTime.Now; newWidgetIns.InsShowAfterInsert = 0; newWidgetIns.InsOrderNo = intOrderNr; newWidgetIns.InsPagId = pageId; newWidgetIns.InsIsFixed = isFixed; newWidgetIns.InsHideIfNoContent = hideIfNoContent; newWidgetIns.InsViewRoles = roleVisibility; if (!string.IsNullOrEmpty(templateId)) { newWidgetIns.WtpId = templateId.ToGuid(); } if (!string.IsNullOrEmpty(outputTemplate)) { newWidgetIns.InsOutputTemplate = outputTemplate.ToGuid(); } else { string[] outputTemplates = new string[] { "" }; if (!string.IsNullOrEmpty(widget.OutputTemplates)) { outputTemplates = widget.OutputTemplates.Split(';'); } if (!string.IsNullOrEmpty(outputTemplates[0])) { newWidgetIns.InsOutputTemplate = outputTemplates[0].ToGuid(); } } newWidgetIns.InsXmlStateData = predefinedContent.Length == 0 ? widget.Settings.Value : predefinedContent; newWidgetIns.WdgId = widgetId; newWidgetIns.Save(); HitblWidgetInstanceTextWit newWidgetInsTxt = new HitblWidgetInstanceTextWit(); newWidgetInsTxt.InsId = newWidgetIns.InsId; newWidgetInsTxt.WitLangCode = langCode; if (!string.IsNullOrEmpty(localizationBaseFileName)) { newWidgetInsTxt.WitTitle = GuiLanguage.GetGuiLanguage(localizationBaseFileName).GetString(titleKey); } else { if (!string.IsNullOrEmpty(widget.LocalizationBaseFileName)) { newWidgetInsTxt.WitTitle = GuiLanguage.GetGuiLanguage(widget.LocalizationBaseFileName).GetString(widget.TitleKey); } else { newWidgetInsTxt.WitTitle = GuiLanguage.GetGuiLanguage("WidgetsBase").GetString(widget.TitleKey); } } newWidgetInsTxt.Save(); if (!string.IsNullOrEmpty(templateId)) { SPs.HispWidgetTemplatesIncreaseCount(pageId, newWidgetIns.WtpId).Execute(); } intOrderNr++; } } }
public WidgetElementDTO GetWidgetElement(int WidgetElementId) { using (ISession session = HibernateHelper.GetSession().OpenSession()) { using (ITransaction transaction = session.BeginTransaction()) { try { WidgetElement widget = new WidgetElement(); widget = EditorServices.GetWidgetElementById(WidgetElementId, session); Mapper.CreateMap<WidgetElement, WidgetElementDTO>(); Mapper.CreateMap<Element, ElementDTO>(); return Mapper.Map<WidgetElement, WidgetElementDTO>(widget); } catch (Exception ex) { throw ex; } finally { session.Flush(); session.Close(); } } } }
private bool _SynchronizeWidgetElement(int contentId, int iditemamm, string type) { bool status = false; using (ISession session = HibernateHelper.GetSession().OpenSession()) { using (ITransaction transaction = session.BeginTransaction()) { try { //Ricava il/i Widget del content IList<Widget> widges = new List<Widget>(); widges = EditorServices.GetWidgetByContent(session, contentId) as List<Widget>; int max = 0; foreach (Widget wid in widges) { if (wid.Structureid == 4) { //è Utility e link if (wid.WidgetElements != null && wid.WidgetElements.Count > 0) { var pos = (from f in wid.WidgetElements where f.Type != (int)WidgetElementTypeEnum.Importato select f.Position); if (pos.Count() > 0) { max = pos.Max(); } //Ricava i WidgetElement del Widget //Cancella gli eventuali WidgetElement di tipo 2 (importati) foreach (WidgetElement widel in wid.WidgetElementsList) { if (widel.Type == (int)WidgetElementTypeEnum.Importato) { widel.Deleted = true; wid.WidgetElements.Remove(widel); HibernateHelper.Persist(widel, session); } } } } //Ricava per iditemamm e tipo i correlati IUnityContainer container = new UnityContainer(); UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity"); section.Containers.Default.Configure(container); WidgetHelper unityHelper = container.Resolve<WidgetHelper>(); DataSet correlati = new DataSet(); correlati = unityHelper.GetCorrelated(iditemamm, type); if (correlati.Tables != null && correlati.Tables[0].Rows.Count > 0) { //Ho trovato dei correlati foreach (DataRow Riga in correlati.Tables[0].Rows) { max++; WidgetElement newidel = new WidgetElement(); newidel.IsNew = true; newidel.Type = (int)WidgetElementTypeEnum.Importato; newidel.Elementid = 6; newidel.Position = max; newidel.Widgetid = wid.Widgetid; newidel.Widget = wid; if (type == "std") { if (Riga["ITEM_NAME"] != DBNull.Value) { newidel.Name = Riga["ITEM_NAME"].ToString(); } if (Riga["ITEM_LINK"] != DBNull.Value) { newidel.Valore = "\\cms\\" + Riga["ITEM_LINK"].ToString(); } } else if (type == "com") { if (Riga["TITLE"] != DBNull.Value) { newidel.Name = Riga["TITLE"].ToString(); } if (Riga["ID_MARKET"] != DBNull.Value && Riga["ID_CORRELATED"] != DBNull.Value) { newidel.Valore = "\\cms\\comm\\corr_doc_frameset.aspx?idcorr=" + Riga["ID_CORRELATED"].ToString() + "&idmarket=" + Riga["ID_MARKET"].ToString() + "&visInfo=no"; } } // Inserisce i nuovi WidgetElement HibernateHelper.Persist(newidel, session); wid.WidgetElements.Add(newidel); } } wid.Dirty = true; HibernateHelper.Persist(wid, session); } transaction.Commit(); status = true; return status; } catch (Exception ex) { transaction.Rollback(); return status; throw ex; } finally { session.Flush(); session.Close(); } } } }
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; } }