/// <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); }
public SiteReport(SiteReportResponse response) : base(response) { Format = response.Format; Report = DecodeReport(response.Report); }