//Reference Newtonsoft - Json.Net //Reference System.Net.Http UriBuilder selfURL = new UriBuilder(ArcGISPortalManager.Current.GetActivePortal().PortalUri) { Path = "sharing/rest/portals/self", Query = "f=json" }; EsriHttpResponseMessage response = new EsriHttpClient().Get(selfURL.Uri.ToString()); dynamic portalSelf = JObject.Parse(await response.Content.ReadAsStringAsync()); // if the response doesn't contain the user information then it is essentially // an anonymous request against the portal if (portalSelf.user == null) return; string userName = portalSelf.user.username;
//Assume that you have executed the "Get the Current signed on User" snippet and have 'userName' UriBuilder groupsURL = new UriBuilder(ArcGISPortalManager.Current.GetActivePortal().PortalUri) { Path = String.Format("sharing/rest/community/users/{0}", userName), Query = "f=json" }; var groupResponse = new EsriHttpClient().Get(groupsURL.Uri.ToString()); dynamic portalGroups = JObject.Parse(await groupResponse.Content.ReadAsStringAsync()); string groups = portalGroups.groups.ToString();
//http://www.arcgis.com/sharing/search?q=owner:esri&f=json UriBuilder searchURL = new UriBuilder(ArcGISPortalManager.Current.GetActivePortal().PortalUri) { Path = "sharing/rest/search", Query = "q=owner:esri&f=json" }; EsriHttpClient httpClient = new EsriHttpClient(); var searchResponse = httpClient.Get(searchURL.Uri.ToString()); dynamic resultItems = JObject.Parse(await searchResponse.Content.ReadAsStringAsync()); long numberOfTotalItems = resultItems.total.Value; long currentCount = 0; List<dynamic> resultItemList = new List<dynamic>(); // store the first results in the list resultItemList.AddRange(resultItems.results); currentCount = currentCount + resultItems.num.Value; //Up to 50 while (currentCount < numberOfTotalItems && currentCount <= 50) { searchURL.Query = String.Format("q=owner:esri&start={0}&f=json", resultItems.nextStart.Value); searchResponse = httpClient.Get(searchURL.Uri.ToString()); resultItems = JObject.Parse(await searchResponse.Content.ReadAsStringAsync()); resultItemList.AddRange(resultItems.results); currentCount = currentCount + resultItems.num.Value; }
UriBuilder searchURL = new UriBuilder(ArcGISPortalManager.Current.GetActivePortal().PortalUri) { Path = "sharing/rest/portals/self", Query = "f=json" }; EsriHttpClient httpClient = new EsriHttpClient(); EsriHttpResponseMessage response = httpClient.Get(searchURL.Uri.ToString()); dynamic portalSelf = JObject.Parse(await response.Content.ReadAsStringAsync()); // if the response doesn't contain the user information then it is essentially // an anonymous request against the portal if (portalSelf.user == null) return; string userName = portalSelf.user.username; searchURL.Path = "sharing/rest/search"; string webMaps = "(type:\"Web Map\" OR type:\"Explorer Map\" OR type:\"Web Mapping Application\" OR type:\"Online Map\")"; searchURL.Query = string.Format("q=owner:{0} {1}&f=json", userName, webMaps); var searchResponse = httpClient.Get(searchURL.Uri.ToString()); dynamic resultItems = JObject.Parse(await searchResponse.Content.ReadAsStringAsync()); long numberOfTotalItems = resultItems.total.Value; if (numberOfTotalItems == 0) return; List<dynamic> resultItemList = new List<dynamic>(); resultItemList.AddRange(resultItems.results); //get the first result dynamic item = resultItemList[0]; string itemID = item.id; Item currentItem = ItemFactory.Instance.Create(itemID, ItemFactory.ItemType.PortalItem); if (MapFactory.Instance.CanCreateMapFrom(currentItem)) { Map newMap = MapFactory.Instance.CreateMapFromItem(currentItem); await ProApp.Panes.CreateMapPaneAsync(newMap); }
UriBuilder searchURL = new UriBuilder(ArcGISPortalManager.Current.GetActivePortal().PortalUri) { Path = "sharing/rest/search" }; string layers = "(type:\"Map Service\" OR type:\"Image Service\" OR type:\"Feature Service\" OR type:\"WMS\" OR type:\"KML\")"; //any public layer content searchURL.Query = string.Format("q={0}&f=json", layers); EsriHttpClient httpClient = new EsriHttpClient(); var searchResponse = httpClient.Get(searchURL.Uri.ToString()); dynamic resultItems = JObject.Parse(await searchResponse.Content.ReadAsStringAsync()); long numberOfTotalItems = resultItems.total.Value; if (numberOfTotalItems == 0) return; List<dynamic> resultItemList = new List<dynamic>(); resultItemList.AddRange(resultItems.results); //get the first result dynamic item = resultItemList[0]; string itemID = item.id; Item currentItem = ItemFactory.Instance.Create(itemID, ItemFactory.ItemType.PortalItem); await QueuedTask.Run(() => { //Create a LayerCreationParam var layerParam = new LayerCreationParams(currentItem); // if we have an item that can be turned into a layer // add it to the map if (LayerFactory.Instance.CanCreateLayerFrom(currentItem)) LayerFactory.Instance.CreateLayer<FeatureLayer>(layerParam, MapView.Active.Map); });
Target Platforms: Windows 11, Windows 10