private static string ConvertPortalGroupToHtmlString(ArcGISPortalGroup portalGroup) { if (portalGroup != null) { var sb = new StringBuilder(); sb.Append("<h2>"); sb.Append("Description"); sb.Append("</h2>"); sb.Append(portalGroup.Description); sb.Append("<h2>"); sb.Append("Tags"); sb.Append("</h2>"); var index = 0; foreach (var tag in portalGroup.Tags) { if (index++ != 0) { sb.Append("<span>, </span>"); } sb.AppendFormat("<a href=\"arcgis://search/{0}\" style=\"text-decoration:none\" >{1}</a>", Uri.EscapeDataString(tag), tag); } return(sb.ToString()); } return(string.Empty); }
private static string ConvertPortalGroupToHtmlString(ArcGISPortalGroup portalGroup) { if (portalGroup != null) { var sb = new StringBuilder(); sb.Append("<h2>"); sb.Append("Description"); sb.Append("</h2>"); sb.Append(portalGroup.Description); sb.Append("<h2>"); sb.Append("Tags"); sb.Append("</h2>"); var index = 0; foreach (var tag in portalGroup.Tags) { if (index++ != 0) sb.Append("<span>, </span>"); sb.AppendFormat("<a href=\"arcgis://search/{0}\" style=\"text-decoration:none\" >{1}</a>", Uri.EscapeDataString(tag), tag); } return sb.ToString(); } return string.Empty; }
public PortalCollectionViewModel(INavigationService navigationService) { Messenger.Default.Register <ChangeIncremetalCollectionMessage>(this, msg => { try { PortalItems = msg.ItemCollection; CollectionTitle = PortalItems.Title; CurrentCollection = PortalItems; } catch (Exception ex) { var _ = App.ShowExceptionDialog(ex); } }); Messenger.Default.Register <ChangePortalItemsCollectionMessage>(this, msg => { try { MyMapsItems = msg.ItemCollection; CollectionTitle = msg.Title; CurrentCollection = MyMapsItems; } catch (Exception ex) { var _ = App.ShowExceptionDialog(ex); } }); Messenger.Default.Register <ChangeFavoritesCollectionMessage>(this, msg => { try { CollectionTitle = msg.Title; CurrentCollection = FavoritesService.CurrentFavoritesService.Favorites; } catch (Exception ex) { var _ = App.ShowExceptionDialog(ex); } }); Messenger.Default.Register <ChangePortalGroupsCollectionMessage>(this, msg => { try { PortalGroups = msg.ItemCollection; CollectionTitle = "Groups"; CurrentCollection = PortalGroups; } catch (Exception ex) { var _ = App.ShowExceptionDialog(ex); } }); // initialize ItemClick RelayCommand ItemClickCommand = new RelayCommand <object>((e) => { // handle the type of EventArgs passed if (e == null) { return; } ArcGISPortalItem portalItem = null; if (e.GetType() == typeof(ArcGISPortalItem)) { portalItem = e as ArcGISPortalItem; } // the GridView sends ItemClickEventArgs else if (e.GetType() == typeof(ItemClickEventArgs)) { portalItem = ((ItemClickEventArgs)e).ClickedItem as ArcGISPortalItem; } else if (e.GetType() == typeof(PointerRoutedEventArgs)) { portalItem = ((PointerRoutedEventArgs)e).OriginalSource as ArcGISPortalItem; } if (portalItem != null) { //SelectedPortalItem = portalItem; // send clicked item via a message to other ViewModels who // are registered with ChangeItemSelectedMessage Messenger.Default.Send <ChangeItemSelectedMessage>(new ChangeItemSelectedMessage() { Item = portalItem }); // use the navigation service to navigate to the page showing the item details navigationService.Navigate(App.ItemPageName, portalItem); } else // check if it is a PortalGroup { ArcGISPortalGroup portalGroup = null; // the GridView sends ItemClickEventArgs if (e.GetType() == typeof(ItemClickEventArgs)) { portalGroup = ((ItemClickEventArgs)e).ClickedItem as ArcGISPortalGroup; } if (portalGroup != null) { // send clicked item via a message to other ViewModels who // are registered with ChangeGroupSelectedMessage Messenger.Default.Send <ChangeGroupSelectedMessage>(new ChangeGroupSelectedMessage() { Group = portalGroup }); //Use the navigation service to navigate to the page showing the item details navigationService.Navigate(App.GroupPageName); } } }); }
private void InitializeCommandAndMessages() { // initialize ItemClick RelayCommand ItemClickCommand = new RelayCommand <object>((e) => { // handle the type of EventArgs passed if (e == null) { return; } ArcGISPortalItem portalItem = null; // the GridView sends ItemClickEventArgs if (e.GetType() == typeof(ItemClickEventArgs)) { portalItem = ((ItemClickEventArgs)e).ClickedItem as ArcGISPortalItem; } // our GalleryPreviewControl sends TileClickEventArgs else if (e.GetType() == typeof(TileClickEventArgs)) { portalItem = ((TileClickEventArgs)e).ClickedTile as ArcGISPortalItem; } if (portalItem != null) { // send clicked item via a message to other ViewModels who // are registered with ChangeItemSelectedMessage Messenger.Default.Send <ChangeItemSelectedMessage>(new ChangeItemSelectedMessage() { Item = portalItem }); //Use the navigation service to navigate to the page showing the item details _navigationService.Navigate(App.ItemPageName, portalItem); } else // check if it is a PortalGroup { ArcGISPortalGroup portalGroup = null; // the GridView sends ItemClickEventArgs if (e.GetType() == typeof(ItemClickEventArgs)) { portalGroup = ((ItemClickEventArgs)e).ClickedItem as ArcGISPortalGroup; } // our GalleryPreviewControl sends TileClickEventArgs else if (e.GetType() == typeof(TileClickEventArgs)) { portalGroup = ((TileClickEventArgs)e).ClickedTile as ArcGISPortalGroup; } if (portalGroup != null) { // send clicked item via a message to other ViewModels who // are registered with ChangeGroupSelectedMessage Messenger.Default.Send <ChangeGroupSelectedMessage>(new ChangeGroupSelectedMessage() { Group = portalGroup }); //Use the navigation service to navigate to the page showing the item details _navigationService.Navigate(App.GroupPageName); } } }); // initialize MoreClickCommand RelayCommand MoreClickCommand = new RelayCommand <object>((objectCollection) => { if (objectCollection == null) { return; } //Use the navigation service to navigate to the page showing the specific collection of portal items _navigationService.Navigate(App.CollectionPageName, objectCollection); }); // Register with PopulateDataMessage Messenger.Default.Register <PopulateDataMessage>(this, msg => { var _ = PopulateDataAsync(); }); // Register with ChangedPortalServiceMessage Messenger.Default.Register <ChangedPortalServiceMessage>(this, msg => { var _ = PopulateDataAsync(); }); }