static public PopupInfo FromDictionary(IDictionary<string, object> dictionary) { var popupInfo = new PopupInfo(); if (dictionary.ContainsKey("title")) popupInfo.Title = dictionary["title"] as string; if (dictionary.ContainsKey("description")) { popupInfo.Description = dictionary["description"] as string; //If there is a description, then no attributes should be displayed. //User chose CUSTOM or SINGLE if the string is not empty if (!string.IsNullOrEmpty(popupInfo.Description)) popupInfo.hideAttributes = true; else //User chose NONE in XO if the string is empty - however disregard as this is not true for JS Viewer //The workaround is for the user to uncheck all attribute fields before selecting NONE in XO. popupInfo.hideAttributes = false; } else popupInfo.hideAttributes = false;// If no description in Json, attributes should be displayed using field infos if (dictionary.ContainsKey("showAttachments")) popupInfo.ShowAttachments = Convert.ToBoolean(dictionary["showAttachments"]); if (dictionary.ContainsKey("fieldInfos")) { IEnumerable enumFieldInfos = dictionary["fieldInfos"] as IEnumerable; if (enumFieldInfos != null) { List<FieldInfo> fieldInfos = new List<FieldInfo>(); foreach (IDictionary<string, object> item in enumFieldInfos) { FieldInfo fi = FieldInfo.FromDictionary(item); if (fi != null) fieldInfos.Add(fi); } popupInfo.FieldInfos = fieldInfos; } } if (dictionary.ContainsKey("mediaInfos")) { IEnumerable enumMediaInfos = dictionary["mediaInfos"] as IEnumerable; if (enumMediaInfos != null) { List<MediaInfo> mediaInfos = new List<MediaInfo>(); foreach (IDictionary<string, object> item in enumMediaInfos) { MediaInfo mi = MediaInfo.FromDictionary(item); if (mi != null) mediaInfos.Add(mi); } popupInfo.MediaInfos = mediaInfos; } } return popupInfo; }
private void GenerateImageMedia(StringBuilder sb, PopupInfo.MediaInfo mediaInfo) { if (mediaInfo.Value.ContainsKey("linkURL") && !string.IsNullOrEmpty(mediaInfo.Value["linkURL"] as string)) { sb.AppendFormat("<HyperlinkButton NavigateUri=\"{0}\" TargetName=\"_blank\" HorizontalAlignment=\"Center\" VerticalAlignment=\"Center\">", GetBinding(mediaInfo.Value["linkURL"])); sb.Append("<HyperlinkButton.Template>"); sb.Append("<ControlTemplate>"); } if (mediaInfo.Value.ContainsKey("sourceURL") && !string.IsNullOrEmpty(mediaInfo.Value["sourceURL"] as string)) sb.AppendFormat("<Image Source=\"{0}\" Stretch=\"Uniform\" HorizontalAlignment=\"Center\"" + " VerticalAlignment=\"Center\" MaxHeight=\"145\" Margin=\"0,5,0,0\" />", GetBinding(mediaInfo.Value["sourceURL"])); if (mediaInfo.Value.ContainsKey("linkURL") && !string.IsNullOrEmpty(mediaInfo.Value["linkURL"] as string)) { sb.Append("</ControlTemplate>"); sb.Append("</HyperlinkButton.Template>"); sb.Append("</HyperlinkButton>"); } }