Example #1
0
        /// <summary>
        /// Admin operation used to get all services for the ArcGIS Server and their reports
        /// </summary>
        /// <param name="ct">Optional cancellation token to cancel pending request</param>
        /// <param name="path">The starting path (folder). If omitted then this will start at the root and get all sub folders too</param>
        /// <returns>All discovered services for the site</returns>
        public virtual async Task <SiteReportResponse> SiteReport(string path = "", CancellationToken ct = default(CancellationToken))
        {
            var folders = new List <string>();

            if (string.IsNullOrWhiteSpace(path))
            {
                var folderDescription = await Get <SiteFolderDescription, ArcGISServerOperation>(new ArcGISServerOperation("/"), ct).ConfigureAwait(false);

                folders.Add("/");
                folders.AddRange(folderDescription.Folders);
            }
            else
            {
                folders.Add(path);
            }

            var result = new SiteReportResponse();

            foreach (var folder in folders)
            {
                var folderReport = await Get <FolderReportResponse, ServiceReport>(new ServiceReport(folder), ct).ConfigureAwait(false);

                result.Resources.Add(folderReport);

                if (ct.IsCancellationRequested)
                {
                    return(result);
                }
            }
            return(result);
        }
Example #2
0
 public SiteReport(SiteReportResponse response) : base(response)
 {
     Format = response.Format;
     Report = DecodeReport(response.Report);
 }