Repository navigation
DiGi.GIS.WebAPI.Classes
Web API controller for PRG address points: stores the address points of a county and searches buildings by address.
public class AddressPointController : DiGi.WebAPI.Classes.WebAPIControllerInheritance System.Object → Microsoft.AspNetCore.Mvc.ControllerBase → DiGi.WebAPI.Classes.WebAPIController → AddressPointController
AddressPointController(GISWebAPIConfigurationFileWatcher, AddressPointPostgreSQLConverter, Building2DPostgreSQLConverter, AdministrativeAreal2DPostgreSQLConverter) Constructor
Initializes a new instance of the AddressPointController class.
public AddressPointController(DiGi.GIS.WebAPI.Classes.GISWebAPIConfigurationFileWatcher GISWebAPIConfigurationFileWatcher, DiGi.GIS.PostgreSQL.Classes.AddressPointPostgreSQLConverter addressPointPostgreSQLConverter, DiGi.GIS.PostgreSQL.Classes.Building2DPostgreSQLConverter building2DPostgreSQLConverter, DiGi.GIS.PostgreSQL.Classes.AdministrativeAreal2DPostgreSQLConverter administrativeAreal2DPostgreSQLConverter);GISWebAPIConfigurationFileWatcher GISWebAPIConfigurationFileWatcher
The configuration file watcher holding the access key and the AllowUpdateAddressPoint flag.
addressPointPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.AddressPointPostgreSQLConverter
The converter of the address point table.
building2DPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.Building2DPostgreSQLConverter
The converter the building footprints the points are matched to are read through.
administrativeAreal2DPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.AdministrativeAreal2DPostgreSQLConverter
The converter the county part polygons and the sibling parts of a county are read through.
Retrieves the address points matched to one building: the reverse of GetBuildingsByAddressAsync(string, string, Nullable<int>, Nullable<int>, CancellationToken).
A building may hold any number of address points; a building with none answers an empty array.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetAddressPointsByReferenceAsync(string? reference, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));reference System.String
The building_2d reference of the building. Required.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation. 200 with the matches (an empty array when none), 400 for a missing reference, or 500 when the lookup could not run.
AddressPointController.GetBuildingsByAddressAsync(string, string, Nullable<int>, Nullable<int>, CancellationToken) Method
Searches the buildings by address: a free-text street or locality name, tolerating typos, missing diacritics and partial names, optionally narrowed by house number and county part.
Answers the matched address points in rank order - similarity first, then an exact house number before a prefix match (12 finds 12A and 12/3, not 120). Each DiGi.GIS.Classes.AddressPointMatch carries the reference and guid of its building together with the address point; points matched to no building are left out. Read the building geometry through gis/building2d/itemsbyreferences.
countyId filters on one county part: a county with disconnected territory is stored as one row per part, so search such a county without the filter, or once per part.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetBuildingsByAddressAsync(string? text, string? houseNumber, System.Nullable<int> countyId, System.Nullable<int> limit=20, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));text System.String
The street or locality name to search for, as typed. Required.
houseNumber System.String
The house number to narrow the result to, or null for any.
countyId System.Nullable<System.Int32>
The county part id to narrow the result to, or null for every county.
limit System.Nullable<System.Int32>
The maximum number of results, from 1 to 100. Out-of-range values are refused, not clamped.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation. 200 with the matches (an empty array when none), or 400 for a missing or empty text, a text that normalises to nothing, or an invalid limit or county id.
Counts the stored address points by how each was matched to a building footprint, for one county part or for the whole table.
Answers an DiGi.GIS.PostgreSQL.Classes.AddressPointCountResult: the points inside a footprint, assigned to the nearest one, and matched to none, together with the total. countyId is optional and omitting it counts the whole table, which scans every row; raise commandTimeout if a large table needs it. It filters on one county part: a county with disconnected territory is stored as one row per part, so count such a county once per part. A county part with no rows counts zero, not an error.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetCountByCountyIdAsync(System.Nullable<int> countyId, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));countyId System.Nullable<System.Int32>
The county part id to count under, or null for the whole table.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400. Defaults to 600 seconds.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation. 200 with the DiGi.GIS.PostgreSQL.Classes.AddressPointCountResult, 400 for a non-positive county id or a negative timeout, 503 for a transient database failure, or 500 when the count could not run.
AddressPointController.UpdateItemsByCountyIdsAsync(JsonArray, int[], string, CancellationToken) Method
Stores the PRG address points of one county: assigns every point to the county part it lies in, matches it to the nearest building_2d footprint of that part and writes the match.
The county part is resolved per point by geometry, never by taking a single id on trust (DiGi.GIS.WebAPI#25): the given ids are first widened to every polygon part of the counties they name, so a caller sending one part of a multi-part county does not lose the points lying in its siblings. A point inside none of the parts is counted as outside and not written.
Answers 401 for a wrong key and, distinctly logged, for a disabled AllowUpdateAddressPoint flag; 503 with Retry-After for a transient database failure.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> UpdateItemsByCountyIdsAsync(System.Text.Json.Nodes.JsonArray? jsonArray, int[]? countyIds, string? key=null, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));jsonArray System.Text.Json.Nodes.JsonArray
The JSON array of DiGi.GIS.Classes.AddressPoint items to store.
countyIds System.Int32[]
The county part ids the points belong to, one occurrence per part. Normally every polygon part of one county.
key System.String
The secret access key supplied in the request header.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation. 200 with the DiGi.GIS.PostgreSQL.Classes.AddressPointUpdateResult, 204 for an empty body, 400 for invalid input, 401, 500 or 503.
Provides functionality to handle the asynchronous posting of multiple PRG DiGi.GIS.Classes.AddressPoint objects to the GIS PostgreSQL database.
public class AddressPointsPostTask : DiGi.GIS.WebAPI.Classes.SerializableObjectsPostTask<DiGi.GIS.Classes.AddressPoint>Inheritance System.Object → DiGi.Core.Classes.BackgroundTask → DiGi.Core.Classes.CancelableBackgroundTask → DiGi.Core.Classes.ReportableBackgroundTask<System.Int64> → DiGi.GIS.WebAPI.Classes.SerializableObjectsPostTask<DiGi.GIS.Classes.AddressPoint> → AddressPointsPostTask
Initializes a new instance of the AddressPointsPostTask class.
public AddressPointsPostTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager GISWebAPIManager);GISWebAPIManager GISWebAPIManager
The GISWebAPIManager used to manage PostgreSQL GIS operations.
Gets or sets the identifiers of the county rows the address points belong to - every polygon part of one county, never a county code: a multi-part county holds one row per part, and the server assigns each point to the part it lies in.
public System.Collections.Generic.IEnumerable<int>? CountyIds { get; set; }System.Collections.Generic.IEnumerable<System.Int32>
AddressPointsPostTask.ExecuteAsync(IEnumerable<AddressPoint>, IEnumerable<int>, LongProgressWrapper, CancellationToken) Method
Asynchronously executes the task of posting address points to the database, keyed by county identifiers.
protected System.Threading.Tasks.Task<bool> ExecuteAsync(System.Collections.Generic.IEnumerable<DiGi.GIS.Classes.AddressPoint>? values, System.Collections.Generic.IEnumerable<int>? countyIds, DiGi.Core.Classes.LongProgressWrapper? longProgressWrapper, System.Threading.CancellationToken cancellationToken);values System.Collections.Generic.IEnumerable<DiGi.GIS.Classes.AddressPoint>
The collection of DiGi.GIS.Classes.AddressPoint instances to post.
countyIds System.Collections.Generic.IEnumerable<System.Int32>
The identifiers of the county rows the address points belong to.
longProgressWrapper DiGi.Core.Classes.LongProgressWrapper
A DiGi.Core.Classes.LongProgressWrapper tracking the progress of the operation.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<System.Boolean>
A task that represents the asynchronous operation. The task result is true if all batches were posted successfully; otherwise, false.
Web API controller for administrative area 2D operations, providing endpoints to retrieve, filter, and update administrative area data.
public class AdministrativeAreal2DController : DiGi.WebAPI.Classes.WebAPIControllerInheritance System.Object → Microsoft.AspNetCore.Mvc.ControllerBase → DiGi.WebAPI.Classes.WebAPIController → AdministrativeAreal2DController
AdministrativeAreal2DController(GISWebAPIConfigurationFileWatcher, AdministrativeAreal2DPostgreSQLConverter) Constructor
Initializes a new instance of the AdministrativeAreal2DController class.
public AdministrativeAreal2DController(DiGi.GIS.WebAPI.Classes.GISWebAPIConfigurationFileWatcher GISWebAPIConfigurationFileWatcher, DiGi.GIS.PostgreSQL.Classes.AdministrativeAreal2DPostgreSQLConverter administrativeAreal2DPostgreSQLConverter);GISWebAPIConfigurationFileWatcher GISWebAPIConfigurationFileWatcher
The configuration file watcher for the GIS PostgreSQL Web API.
administrativeAreal2DPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.AdministrativeAreal2DPostgreSQLConverter
The converter used for administrative area 2D PostgreSQL operations.
AdministrativeAreal2DController.GetAdministrativeAreal2DReferenceByCodeAsync(string, Nullable<AdministrativeArealType>, CancellationToken) Method
Gets an administrative area reference by its code and type.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetAdministrativeAreal2DReferenceByCodeAsync(string? code, System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType> administrativeArealType, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));code System.String
The unique code of the administrative area.
administrativeArealType System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType>
The optional type of the administrative area to filter the search. Omit to resolve the code without a type filter.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
AdministrativeAreal2DController.GetAdministrativeAreal2DReferenceByIdAsync(int, CancellationToken) Method
Retrieves an administrative area reference by its identifier.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetAdministrativeAreal2DReferenceByIdAsync(int id, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));id System.Int32
The unique identifier of the administrative area reference to retrieve.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
AdministrativeAreal2DController.GetAdministrativeAreal2DReferencePathByIdAsync(int, CancellationToken) Method
Retrieves the administrative area reference path by its identifier.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetAdministrativeAreal2DReferencePathByIdAsync(int id, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));id System.Int32
The unique identifier of the administrative area reference path to retrieve.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
AdministrativeAreal2DController.GetAdministrativeAreal2DReferencePathsByNameAsync(string, CancellationToken) Method
Retrieves administrative area reference paths by name.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetAdministrativeAreal2DReferencePathsByNameAsync(string text, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));text System.String
The search text used to find matching administrative area reference paths.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Use GET referencepathsbyname?text=... for a simpler query-string form without the _type body discriminator.
AdministrativeAreal2DController.GetAdministrativeAreal2DReferencePathsByNameParameterAsync(AdministrativeAreal2DReferencePathsByNameParameter, CancellationToken) Method
Retrieves administrative area reference paths by name parameter.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetAdministrativeAreal2DReferencePathsByNameParameterAsync(DiGi.GIS.WebAPI.Classes.AdministrativeAreal2DReferencePathsByNameParameter administrativeAreal2DReferencePathsByNameParameter, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));administrativeAreal2DReferencePathsByNameParameter AdministrativeAreal2DReferencePathsByNameParameter
The parameter containing the search term for querying administrative areas by name.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
AdministrativeAreal2DController.GetAdministrativeAreal2DReferencesByAdministrativeArealTypeAsync(Nullable<AdministrativeArealType>, Nullable<int>, Nullable<bool>, CancellationToken) Method
Retrieves all administrative area references filtered by administrative area type.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetAdministrativeAreal2DReferencesByAdministrativeArealTypeAsync(System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType> administrativeArealType, System.Nullable<int> parentId, System.Nullable<bool> uniqueCode, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));administrativeArealType System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType>
The administrative area type used to filter the references. Bound as nullable so an omitted parameter can be rejected: a non-nullable binding would silently take DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType.Country, because that is default of the enum while DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType.Undefined is -1.
parentId System.Nullable<System.Int32>
The optional parent identifier used for filtering.
uniqueCode System.Nullable<System.Boolean>
An optional flag indicating whether to filter by unique code.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
AdministrativeAreal2DController.GetAdministrativeAreal2DReferencesByCodeAsync(string, Nullable<AdministrativeArealType>, CancellationToken) Method
Retrieves administrative area references by their code.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetAdministrativeAreal2DReferencesByCodeAsync(string code, System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType> administrativeArealType, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));code System.String
The unique identifier or code used to retrieve the administrative area references.
administrativeArealType System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType>
An optional filter specifying the type of administrative area.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
AdministrativeAreal2DController.GetAdministrativeAreal2DReferencesByIdsAsync(List<int>, CancellationToken) Method
Retrieves administrative area references by a list of identifiers.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetAdministrativeAreal2DReferencesByIdsAsync(System.Collections.Generic.List<int> ids, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));ids System.Collections.Generic.List<System.Int32>
The list of unique identifiers of the administrative areas to retrieve.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
AdministrativeAreal2DController.GetAdministrativeAreal2DReferencesByNameParameterAsync(AdministrativeAreal2DReferencesByNameParameter, CancellationToken) Method
Retrieves administrative area references by name parameter.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetAdministrativeAreal2DReferencesByNameParameterAsync(DiGi.GIS.WebAPI.Classes.AdministrativeAreal2DReferencesByNameParameter administrativeAreal2DReferencesByNameParameter, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));administrativeAreal2DReferencesByNameParameter AdministrativeAreal2DReferencesByNameParameter
The parameter containing the search term for querying administrative area references by name.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Use GET referencesbyname?text=... for a simpler query-string form without the _type body discriminator.
Asynchronously retrieves the 2D bounding box enclosing country administrative areas.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetBoundingBox2DAsync(System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by the called method to indicate that the operation should be canceled.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Retrieves all available administrative area codes.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetCodesAsync();System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Retrieves the count of administrative areas.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetCountAsync(System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
AdministrativeAreal2DController.GetIdByCodeAsync(string, Nullable<AdministrativeArealType>, CancellationToken) Method
Retrieves the identifier for a given code.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetIdByCodeAsync(string code, System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType> administrativeArealType, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));code System.String
The unique code of the administrative area.
administrativeArealType System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType>
The optional type of the administrative area to filter the search.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
AdministrativeAreal2DController.GetIdsByAdministrativeArealTypeAsync(Nullable<AdministrativeArealType>, CancellationToken) Method
Retrieves all identifiers for a given administrative area type.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetIdsByAdministrativeArealTypeAsync(System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType> administrativeArealType, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));administrativeArealType System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType>
The administrative area type. Bound as nullable so an omitted parameter can be rejected: a non-nullable binding would silently take DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType.Country, because that is default of the enum while DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType.Undefined is -1.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
AdministrativeAreal2DController.GetIdsByCodeAsync(string, Nullable<AdministrativeArealType>, CancellationToken) Method
Retrieves all identifiers for a given code.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetIdsByCodeAsync(string code, System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType> administrativeArealType, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));code System.String
The code of the administrative area.
administrativeArealType System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType>
The optional type of the administrative area to filter the search.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
AdministrativeAreal2DController.GetItemByCodeAsync(string, Nullable<AdministrativeArealType>, CancellationToken) Method
Retrieves an administrative area item by its code and optional type.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemByCodeAsync(string code, System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType> administrativeArealType, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));code System.String
The unique code of the administrative area to retrieve.
administrativeArealType System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType>
The optional type of the administrative area to filter the search.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Asynchronously retrieves an administrative area item by its unique identifier.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemByIdAsync(int id, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));id System.Int32
The integer identifier of the administrative area item to retrieve.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
AdministrativeAreal2DController.GetItemsByAdministrativeArealTypeAsync(Nullable<AdministrativeArealType>, CancellationToken) Method
Retrieves all administrative area items filtered by administrative area type.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemsByAdministrativeArealTypeAsync(System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType> administrativeArealType, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));administrativeArealType System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType>
The administrative area type used to filter the results. Bound as nullable so an omitted parameter can be rejected: a non-nullable binding would silently take DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType.Country, because that is default of the enum while DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType.Undefined is -1.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
AdministrativeAreal2DController.GetItemsByBoundingBoxAsync(double, double, double, double, Nullable<double>, Nullable<AdministrativeArealType>, CancellationToken) Method
Retrieves administrative area items within a specified bounding box.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemsByBoundingBoxAsync(double x_1, double y_1, double x_2, double y_2, System.Nullable<double> tolerance, System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType> administrativeArealType, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));x_1 System.Double
The X-coordinate of the first corner of the bounding box.
y_1 System.Double
The Y-coordinate of the first corner of the bounding box.
x_2 System.Double
The X-coordinate of the second corner of the bounding box.
y_2 System.Double
The Y-coordinate of the second corner of the bounding box.
tolerance System.Nullable<System.Double>
An optional tolerance value for the spatial query. If not provided, a default macro distance is used.
administrativeArealType System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType>
An optional filter to restrict results to a specific type of administrative area.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
AdministrativeAreal2DController.GetItemsByCircleAsync(double, double, Nullable<double>, Nullable<double>, Nullable<double>, Nullable<AdministrativeArealType>, CancellationToken) Method
Retrieves administrative area items within a specified circle.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemsByCircleAsync(double x, double y, System.Nullable<double> radius, System.Nullable<double> diameter, System.Nullable<double> tolerance, System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType> administrativeArealType, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));The X-coordinate of the center point of the search circle.
The Y-coordinate of the center point of the search circle.
radius System.Nullable<System.Double>
The radius of the search circle, in metres. Capped at MaximumRadius.
diameter System.Nullable<System.Double>
The diameter of the search circle, in metres, used only when radius is absent. Capped at twice MaximumRadius.
tolerance System.Nullable<System.Double>
The tolerance value for the spatial query.
administrativeArealType System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType>
The type of administrative area to retrieve.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult containing a list of administrative area items if found, or an error response.
AdministrativeAreal2DController.GetItemsByCodeAsync(string, Nullable<AdministrativeArealType>, CancellationToken) Method
Retrieves administrative area items filtered by code.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemsByCodeAsync(string code, System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType> administrativeArealType, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));code System.String
The code used to filter the administrative area items.
administrativeArealType System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType>
The optional type of administrative area to filter by.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult containing a list of matching administrative area items, or an error response if the code is invalid or no items are found.
Retrieves administrative area items filtered by multiple codes.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemsByCodesAsync(System.Collections.Generic.List<string> codes, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));codes System.Collections.Generic.List<System.String>
The list of codes used to filter the administrative area items.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Retrieves administrative area items filtered by a list of identifiers.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemsByIdsAsync(System.Collections.Generic.List<int> ids, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));ids System.Collections.Generic.List<System.Int32>
The list of identifiers used to retrieve the administrative area items.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
AdministrativeAreal2DController.GetItemsByPointAsync(double, double, Nullable<double>, Nullable<AdministrativeArealType>, CancellationToken) Method
Retrieves administrative area items at or near a specified point.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemsByPointAsync(double x, double y, System.Nullable<double> tolerance, System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType> administrativeArealType, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));The X-coordinate of the search point.
The Y-coordinate of the search point.
tolerance System.Nullable<System.Double>
The optional tolerance distance to use when searching for items near the specified point. If null, a default macro distance is used.
administrativeArealType System.Nullable<DiGi.GIS.PostgreSQL.Enums.AdministrativeArealType>
The optional type filter for the administrative area items to be retrieved.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Retrieves administrative area reference paths by name as a query string.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetReferencePathsByNameAsync(string text, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));text System.String
The search text used to find matching administrative area reference paths. Required.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Case-insensitive substring match on the administrative area name. Equivalent to POST administrativeareal2Dreferencepathsbynameparameter without the _type discriminator.
Retrieves administrative area references by name as a query string.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetReferencesByNameAsync(string text, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));text System.String
The search text used to find matching administrative area references. Required.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Case-insensitive substring match on the administrative area name. Equivalent to POST administrativeareal2Dreferencesbynameparameter without the _type discriminator.
Retrieves subcodes for a given code.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetSubCodesAsync(string code, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));code System.String
The administrative area code used to retrieve the associated subcodes.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Updates a single administrative area item.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> UpdateItemAsync(System.Text.Json.Nodes.JsonObject? jsonObject, string? key=null, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));jsonObject System.Text.Json.Nodes.JsonObject
The System.Text.Json.Nodes.JsonObject containing the data used to update the administrative area item.
key System.String
The secret access key supplied in the request header.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Updates multiple administrative area items.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> UpdateItemsAsync(System.Text.Json.Nodes.JsonArray? jsonArray, string? key=null, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));jsonArray System.Text.Json.Nodes.JsonArray
The JSON array containing the administrative area items to be updated.
key System.String
The secret access key supplied in the request header.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by other objects or threads to receive notice of cancellation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Represents a parameter containing text for querying administrative area reference paths.
public class AdministrativeAreal2DReferencePathsByNameParameter : DiGi.WebAPI.Classes.ParameterInheritance System.Object → DiGi.Core.Classes.Object → DiGi.Core.Classes.SerializableObject → DiGi.WebAPI.Classes.Parameter → AdministrativeAreal2DReferencePathsByNameParameter
Initializes a new instance of the AdministrativeAreal2DReferencePathsByNameParameter class.
public AdministrativeAreal2DReferencePathsByNameParameter();Initializes a new instance of the AdministrativeAreal2DReferencePathsByNameParameter class with the specified text (search phrase).
public AdministrativeAreal2DReferencePathsByNameParameter(string text);text System.String
The text to search for.
Initializes a new instance of the AdministrativeAreal2DReferencePathsByNameParameter class using an System.Text.Json.Nodes.JsonObject object.
public AdministrativeAreal2DReferencePathsByNameParameter(System.Text.Json.Nodes.JsonObject jsonObject);jsonObject System.Text.Json.Nodes.JsonObject
The JSON object containing the parameter values.
Text to search for in the names of the administrative areal 2D reference paths. The search is case-insensitive and matches any path whose name contains the specified text.
public string? Text { get; set; }Represents a parameter containing text for querying administrative area references.
public class AdministrativeAreal2DReferencesByNameParameter : DiGi.WebAPI.Classes.ParameterInheritance System.Object → DiGi.Core.Classes.Object → DiGi.Core.Classes.SerializableObject → DiGi.WebAPI.Classes.Parameter → AdministrativeAreal2DReferencesByNameParameter
Initializes a new instance of the AdministrativeAreal2DReferencesByNameParameter class.
public AdministrativeAreal2DReferencesByNameParameter();Initializes a new instance of the AdministrativeAreal2DReferencesByNameParameter class with the specified text.
public AdministrativeAreal2DReferencesByNameParameter(string text);text System.String
The text to search for.
Initializes a new instance of the AdministrativeAreal2DReferencesByNameParameter class using a System.Text.Json.Nodes.JsonObject instance.
public AdministrativeAreal2DReferencesByNameParameter(System.Text.Json.Nodes.JsonObject jsonObject);jsonObject System.Text.Json.Nodes.JsonObject
The JSON object containing the parameter values.
Gets or sets the text to search for in the names of administrative areal 2D references.
public string? Text { get; set; }Provides functionality to asynchronously post a collection of DiGi.GIS.Classes.AdministrativeAreal2D objects to the PostgreSQL database.
public class AdministrativeAreal2DsPostTask : DiGi.GIS.WebAPI.Classes.SerializableObjectsPostTask<DiGi.GIS.Classes.AdministrativeAreal2D>Inheritance System.Object → DiGi.Core.Classes.BackgroundTask → DiGi.Core.Classes.CancelableBackgroundTask → DiGi.Core.Classes.ReportableBackgroundTask<System.Int64> → DiGi.GIS.WebAPI.Classes.SerializableObjectsPostTask<DiGi.GIS.Classes.AdministrativeAreal2D> → AdministrativeAreal2DsPostTask
Initializes a new instance of the AdministrativeAreal2DsPostTask class.
public AdministrativeAreal2DsPostTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager GISWebAPIManager);GISWebAPIManager GISWebAPIManager
The GIS PostgreSQL Web API manager used to handle database operations.
Parameter class containing options for a batch of single-value database aggregation queries: several measures over one shared partition and filter, served in one request (DiGi-Organization/DiGi.GIS.WebAPI#56).
public class AggregateSummariesRequestParameter : DiGi.WebAPI.Classes.ParameterInheritance System.Object → DiGi.Core.Classes.Object → DiGi.Core.Classes.SerializableObject → DiGi.WebAPI.Classes.Parameter → AggregateSummariesRequestParameter
Initializes a new instance of the AggregateSummariesRequestParameter class.
public AggregateSummariesRequestParameter();Initializes a new instance of the AggregateSummariesRequestParameter class using a System.Text.Json.Nodes.JsonObject object.
public AggregateSummariesRequestParameter(System.Text.Json.Nodes.JsonObject jsonObject);jsonObject System.Text.Json.Nodes.JsonObject
The JSON object containing data used to initialize the parameter.
Gets or sets the target partition identifier (County ID). If null, aggregation is performed across all partitions.
public System.Nullable<int> CountyId { get; set; }10365
Gets or sets the optional dynamic hierarchical filters applied to every measure.
public DiGi.PostgreSQL.Table.Classes.FilterGroup? FilterGroup { get; set; }DiGi.PostgreSQL.Table.Classes.FilterGroup
Gets or sets the single-value aggregate measures to compute, each pairing a target column with its function.
The answers arrive in this order, one value per measure; a SQL NULL aggregate (for example Avg over zero rows) is preserved as JSON null. Multi-value measures and histograms are not accepted here. An empty list, or a list above the cap, is refused with 400 (DiGi-Organization/DiGi.GIS.WebAPI#56).
public System.Collections.Generic.List<DiGi.PostgreSQL.Table.Classes.AggregateMeasure> Measures { get; set; }System.Collections.Generic.List<DiGi.PostgreSQL.Table.Classes.AggregateMeasure>
[{ "ColumnUniqueId": "floor_area", "SinglevalueAggregateFunction": "Avg" }]
Web API controller for building 2D operations, providing endpoints to retrieve, filter, and update building 2D data.
public class Building2DController : DiGi.WebAPI.Classes.WebAPIControllerInheritance System.Object → Microsoft.AspNetCore.Mvc.ControllerBase → DiGi.WebAPI.Classes.WebAPIController → Building2DController
Building2DController(GISWebAPIConfigurationFileWatcher, Building2DPostgreSQLConverter, AdministrativeAreal2DPostgreSQLConverter) Constructor
Initializes a new instance of the Building2DController class.
public Building2DController(DiGi.GIS.WebAPI.Classes.GISWebAPIConfigurationFileWatcher GISWebAPIConfigurationFileWatcher, DiGi.GIS.PostgreSQL.Classes.Building2DPostgreSQLConverter building2DPostgreSQLConverter, DiGi.GIS.PostgreSQL.Classes.AdministrativeAreal2DPostgreSQLConverter administrativeAreal2DPostgreSQLConverter);GISWebAPIConfigurationFileWatcher GISWebAPIConfigurationFileWatcher
The configuration file watcher for the GIS PostgreSQL Web API.
building2DPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.Building2DPostgreSQLConverter
The converter used for Building 2D data operations in PostgreSQL.
administrativeAreal2DPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.AdministrativeAreal2DPostgreSQLConverter
The converter used to resolve administrative area codes to county identifiers.
Asynchronously counts the number of buildings based on the administrative areal 2D identifiers.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> CountAsync(DiGi.GIS.WebAPI.Classes.CountByAdministrativeAreal2DIdsParameter countByAdministrativeAreal2DIdsParameter, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));countByAdministrativeAreal2DIdsParameter CountByAdministrativeAreal2DIdsParameter
The parameter object containing the collection of administrative areal 2D identifiers.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Asynchronously retrieves a building 2D reference by its unique identifier and an optional county identifier.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetBuilding2DReferenceByIdAsync(long id, System.Nullable<int> countyId, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));id System.Int64
The unique identifier of the building.
countyId System.Nullable<System.Int32>
An optional integer representing the county identifier used to filter the search.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Building2DController.GetBuilding2DReferenceByReferenceAsync(string, Nullable<int>, CancellationToken) Method
Retrieves a building 2D reference by its unique reference code and an optional county identifier.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetBuilding2DReferenceByReferenceAsync(string reference, System.Nullable<int> countyId, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));reference System.String
The unique reference string of the building to retrieve.
countyId System.Nullable<System.Int32>
The optional integer identifier of the county used to filter the search.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Building2DController.GetBuilding2DReferencesByAdministrativeAreal2DIdAsync(int, CancellationToken) Method
Retrieves building 2D references filtered by administrative area 2D identifier. Can be used for relatively small number of buildings.
An area above the subdivision level resolves through its Subdivision children (building_2d.subdivision_id membership); a Subdivision resolves through its polygon - the buildings whose bounding-box centre it contains - because the subdivision layer nests (a city, its districts and their neighbourhoods are all subdivisions of one municipality) and subdivision_id files each building under a single container, so membership cannot name a district's buildings (DiGi.GIS.PostgreSQL#75). Parity with point2dsbyadministrativeareal2Did.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetBuilding2DReferencesByAdministrativeAreal2DIdAsync(int administrativeAreal2DId, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));administrativeAreal2DId System.Int32
The unique identifier of the administrative area 2D used to filter the building references.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Building2DController.GetBuilding2DReferencesByPagingParameterAsync(Building2DReferencesByPagingParameter, CancellationToken) Method
Retrieves a paginated list of building 2D references.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetBuilding2DReferencesByPagingParameterAsync(DiGi.GIS.WebAPI.Classes.Building2DReferencesByPagingParameter building2DReferencesByPagingParameter, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));building2DReferencesByPagingParameter Building2DReferencesByPagingParameter
The parameter containing paging options, including county identifier, cursor, and page size.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task representing the asynchronous operation, returning a list of building 2D references.
Retrieves the bounding-box centres of every building of the given administrative area as one compact, columnar document: {"References":[…],"CountyIds":[…],"X":[…],"Y":[…]}, the i-th entry of every array describing the same building, coordinates rounded to 0.01 m.
The same buildings, area resolution and status codes as point2dsbyadministrativeareal2Did (see its remarks), without a _type and four property names per building. That answer relays as 15.9 MB for county 1465 (155 307 buildings), and its client only ever keeps these four values (DiGi.GIS.WebAPI.UI#29). The full endpoint stays for callers that deserialize Building2DCentroid objects.
An area with no buildings answers 200 with four empty arrays; a failed area lookup answers 404. Rows without a reference or a county identifier are left out (ToSystem_JsonObject(this IEnumerable<Building2DCentroid>)).
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetCentroidsByAdministrativeAreal2DIdAsync(int administrativeAreal2DId, int commandTimeout=30, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));administrativeAreal2DId System.Int32
The unique identifier of the administrative area 2D whose buildings are returned.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Asynchronously counts, for every polygon part of every multi-part county, the buildings it holds whose bounding box lies outside that part.
A county code names one administrative_areal_2d row per polygon part, and a building filed under the wrong one is unreachable through every read that filters on county_id. A building whose stored box does not intersect the box of the part holding it cannot be inside that part, so what this counts is certainly misfiled - and it costs no geometry.
The count is a lower bound, not a total: a building inside the box of its part but outside the polygon needs the polygon to settle and is not counted. Read it as the number of rows known to be wrong, before and after a repair.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetCountyPartMismatchesAsync(string? code=null, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));code System.String
An optional county code to restrict the measurement to. When omitted every multi-part code is measured.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400. Defaults to 600 seconds.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task representing the asynchronous operation, returning one entry per county part holding buildings.
Asynchronously returns the estimated number of buildings held by each of the named county parts.
Read from the planner's row estimate of each county's building_2d partition, not counted: the whole country answers in one catalogue query, where an exact count reads every partition. The estimate is as fresh as the partition's last analyse, which is close enough for a coarse share such as a coverage marker and not for a figure anyone reconciles against.
The values come back in the order the identifiers were given, one per identifier, so a caller pairs them up by position. A value is null where the part has no partition or the partition has never been analysed - an unknown, never a zero.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetEstimatedCountsByCountyIdsAsync(System.Collections.Generic.List<int>? countyIds, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));countyIds System.Collections.Generic.List<System.Int32>
The county part identifiers, as a repeated countyids parameter. At least one and at most MaximumEstimatedCountCountyCount.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400. Defaults to 600 seconds.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation. 200 with one estimate or null per identifier, 400 for invalid parameters, 503 on a transient database failure, or 500 when the estimates could not be read.
Retrieves a building 2D item by its identifier.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemByIdAsync(long id, System.Nullable<int> countyId, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));id System.Int64
The unique identifier of the building 2D item to retrieve.
countyId System.Nullable<System.Int32>
The optional county identifier associated with the building.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Building2DController.GetItemByPointAsync(double, double, Nullable<double>, CancellationToken) Method
Retrieves a building 2D item at or near a specified point.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemByPointAsync(double x, double y, System.Nullable<double> tolerance, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));The X coordinate of the search point.
The Y coordinate of the search point.
tolerance System.Nullable<System.Double>
The optional tolerance distance in meters to use when searching for the item near the specified point. If not provided, NaN, or non-positive, a default tolerance of 0.5 meters is used.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult containing the building 2D item if found, or an error response.
Asynchronously retrieves a building 2D item by its reference code and an optional county identifier.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemByReferenceAsync(string reference, System.Nullable<int> countyId, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));reference System.String
The unique reference string used to locate the building 2D item.
countyId System.Nullable<System.Int32>
The optional identifier of the county associated with the building.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Building2DController.GetItemsByBoundingBoxAsync(double, double, double, double, Nullable<double>, CancellationToken) Method
Retrieves building 2D items within a specified bounding box.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemsByBoundingBoxAsync(double x_1, double y_1, double x_2, double y_2, System.Nullable<double> tolerance, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));x_1 System.Double
The X-coordinate of the first corner of the bounding box.
y_1 System.Double
The Y-coordinate of the first corner of the bounding box.
x_2 System.Double
The X-coordinate of the second corner of the bounding box.
y_2 System.Double
The Y-coordinate of the second corner of the bounding box.
tolerance System.Nullable<System.Double>
An optional tolerance value for the spatial query. If not provided or NaN, a default macro distance is used.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Retrieves building 2D items by their references.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemsByBuilding2DReferencesAsync(System.Text.Json.Nodes.JsonArray? jsonArray, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));jsonArray System.Text.Json.Nodes.JsonArray
The JSON array containing the building 2D references to retrieve.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Building2DController.GetItemsByCircleAsync(double, double, Nullable<double>, Nullable<double>, Nullable<double>, CancellationToken) Method
Retrieves building 2D items within a specified circle.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemsByCircleAsync(double x, double y, System.Nullable<double> radius, System.Nullable<double> diameter, System.Nullable<double> tolerance, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));The X-coordinate of the center of the circle.
The Y-coordinate of the center of the circle.
radius System.Nullable<System.Double>
The radius of the search circle, in metres. Capped at MaximumRadius.
diameter System.Nullable<System.Double>
The diameter of the search circle, in metres, used only when radius is absent. Capped at twice MaximumRadius.
tolerance System.Nullable<System.Double>
The tolerance value to be applied to the search area.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Retrieves building 2D items for a specified county identifier.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemsByCountyIdAsync(int countyId, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));countyId System.Int32
The unique identifier of the county.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation. The task result contains the building 2D items as a JSON response, or a 404 status if no items are found.
Building2DController.GetItemsByReferencesAsync(IEnumerable<string>, Nullable<int>, CancellationToken) Method
Asynchronously retrieves building 2D items for each of the provided references and an optional county identifier.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemsByReferencesAsync(System.Collections.Generic.IEnumerable<string>? references, System.Nullable<int> countyId, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));references System.Collections.Generic.IEnumerable<System.String>
The collection of unique reference strings used to identify the 2D buildings.
countyId System.Nullable<System.Int32>
An optional integer representing the county ID to filter the results.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task representing the asynchronous operation, returning a list of building 2D items.
Retrieves the bounding-box centres of every building of the given administrative area, keyed by reference and county partition, for fast 2D dot rendering.
Area resolution (parity with building2Dreferencesbyadministrativeareal2Did): an area above the subdivision level goes through its Subdivision children, not geometry - one with no subdivisions answers 200 with an empty array, which is not the same as "the area holds no buildings"; it means the resolution found no subdivision to filter by. A Subdivision goes through its polygon instead - the buildings whose bounding-box centre it contains - because the subdivision layer nests and subdivision_id membership cannot name a district's buildings (DiGi.GIS.PostgreSQL#75); for it, an empty array does mean the polygon holds no building centre. A Microsoft.AspNetCore.Http.StatusCodes.Status404NotFound means the area lookup itself failed, not that the area is empty. Rows whose bounding box is NULL are skipped. The JSONB geometry column is never read on either path.
A cold partition can exceed the default timeout (precedent: issue #27) - retry once with a higher commandtimeout before treating a timeout as a defect.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetPoint2DsByAdministrativeAreal2DIdAsync(int administrativeAreal2DId, int commandTimeout=30, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));administrativeAreal2DId System.Int32
The unique identifier of the administrative area 2D used to filter the building centroids.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Building2DController.GetPoint2DsByReferencesAsync(IEnumerable<string>, Nullable<int>, CancellationToken) Method
Retrieves Point2D coordinates by their references.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetPoint2DsByReferencesAsync(System.Collections.Generic.IEnumerable<string>? references, System.Nullable<int> countyId, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));references System.Collections.Generic.IEnumerable<System.String>
A collection of reference strings used to identify the Point2D objects.
countyId System.Nullable<System.Int32>
The optional identifier for the county associated with the coordinates.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Asynchronously retrieves duplicate building references that occur across multiple counties, ordered by collision count descending.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetReferenceDuplicatesAsync(int limit=100, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));limit System.Int32
The maximum number of duplicate references to return. Defaults to 100.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400. Defaults to 600 seconds.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task representing the asynchronous operation, returning a list of duplicate building references.
Building2DController.GetReferencesByCountyIdAsync(int, Nullable<int>, int, CancellationToken) Method
Retrieves references of the building2Ds filtered by county Id.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetReferencesByCountyIdAsync(int countyId, System.Nullable<int> subdivisionId=null, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));countyId System.Int32
The unique identifier of the county used to filter the building 2D references.
subdivisionId System.Nullable<System.Int32>
The optional unique identifier of the subdivision used to further filter the building 2D references. When set, the buildings are read by the subdivision's polygon (every container that holds a building answers), not by the stored subdivision_id - the subdivision layer is nested, so a building filed under its neighbourhood is still returned for its district and city.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400. Defaults to 600 seconds.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Asynchronously retrieves overall building reference uniqueness metrics across all partitions in the database.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetReferenceUniquenessSummaryAsync(int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400. Defaults to 600 seconds.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task representing the asynchronous operation, returning the building reference uniqueness summary.
Building2DController.UpdateItemAsync(JsonObject, string, Nullable<int>, string, CancellationToken) Method
Updates a single building 2D item.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> UpdateItemAsync(System.Text.Json.Nodes.JsonObject? jsonObject, string? code, System.Nullable<int> countyId=null, string? key=null, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));jsonObject System.Text.Json.Nodes.JsonObject
The System.Text.Json.Nodes.JsonObject containing the data to update the building 2D item. This value can be null.
code System.String
The code identifying the specific building 2D item to be updated. This value can be null.
countyId System.Nullable<System.Int32>
The optional county identifier associated with the building.
key System.String
The secret access key supplied in the request header.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Updates multiple building 2D items based on the provided JSON array and identification code.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> UpdateItemsAsync(System.Text.Json.Nodes.JsonArray? jsonArray, string? code, string? key=null, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));jsonArray System.Text.Json.Nodes.JsonArray
The JSON array containing the building 2D items to be updated.
code System.String
The identification code required for the update operation.
key System.String
The secret access key supplied in the request header.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Building2DController.UpdateItemsByCountyIdsAsync(JsonArray, int[], string, string, CancellationToken) Method
Updates multiple building 2D items in the database for the given county rows.
Naming several parts leaves the part of each building to geometry, which is the only thing that can decide it. Passing code as well does not change that answer - it narrows the candidates to the parts of that county before the geometry runs, and it is what the row stores in its own code column.
Without it a building of a multi-part county is resolved against every county whose extent reaches it, which costs one query returning whole county polygons per building rather than one set of polygons per county. That is the difference between minutes and hours over a county of tens of thousands of buildings, so an importer that knows the code should send it.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> UpdateItemsByCountyIdsAsync(System.Text.Json.Nodes.JsonArray? jsonArray, int[]? countyIds, string? code=null, string? key=null, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));jsonArray System.Text.Json.Nodes.JsonArray
The JSON array containing the building 2D items to be updated.
countyIds System.Int32[]
The identifiers of the county rows the buildings belong to. Normally every polygon part of one county.
code System.String
The optional county code the buildings came from. It narrows the geometric decision and is stored on the row; the parts named in countyIds still decide.
key System.String
The secret access key supplied in the request header.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Parameter class containing options for keyset-paginated building 2D reference queries.
public class Building2DReferencesByPagingParameter : DiGi.WebAPI.Classes.ParameterInheritance System.Object → DiGi.Core.Classes.Object → DiGi.Core.Classes.SerializableObject → DiGi.WebAPI.Classes.Parameter → Building2DReferencesByPagingParameter
Initializes a new instance of the Building2DReferencesByPagingParameter class.
public Building2DReferencesByPagingParameter();Initializes a new instance of the Building2DReferencesByPagingParameter class by copying properties from another instance.
public Building2DReferencesByPagingParameter(DiGi.GIS.WebAPI.Classes.Building2DReferencesByPagingParameter building2DReferencesByPagingParameter);building2DReferencesByPagingParameter Building2DReferencesByPagingParameter
The parameter instance to copy properties from.
Initializes a new instance of the Building2DReferencesByPagingParameter class using a System.Text.Json.Nodes.JsonObject object.
public Building2DReferencesByPagingParameter(System.Text.Json.Nodes.JsonObject jsonObject);jsonObject System.Text.Json.Nodes.JsonObject
The JSON object containing data used to initialize the parameter.
Gets or sets the target partition identifier (County ID).
public int CountyId { get; set; }10365
Gets or sets the pagination cursor tracking the last processed building reference.
public string? Cursor { get; set; }BLDG-12345
Gets or sets the maximum count of references per page. Defaults to 250.
public int PageSize { get; set; }100
Gets or sets the target subdivision identifier (Subdivision ID). Leave null to return references for the whole county.
public System.Nullable<int> SubdivisionId { get; set; }1035
Provides functionality to handle the asynchronous posting of multiple DiGi.GIS.Classes.Building2D objects to the GIS PostgreSQL database.
public class Building2DsPostTask : DiGi.GIS.WebAPI.Classes.SerializableObjectsPostTask<DiGi.GIS.Classes.Building2D>Inheritance System.Object → DiGi.Core.Classes.BackgroundTask → DiGi.Core.Classes.CancelableBackgroundTask → DiGi.Core.Classes.ReportableBackgroundTask<System.Int64> → DiGi.GIS.WebAPI.Classes.SerializableObjectsPostTask<DiGi.GIS.Classes.Building2D> → Building2DsPostTask
Initializes a new instance of the Building2DsPostTask class.
public Building2DsPostTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager GISWebAPIManager);GISWebAPIManager GISWebAPIManager
The GISWebAPIManager used to manage PostgreSQL GIS operations.
Gets or sets the code associated with the building 2D post task.
A code does not identify a single county row - a multi-part county holds one row per polygon part - so set CountyId instead wherever the identifier is already known. CountyId takes precedence when both are set.
public string? Code { get; set; }Gets or sets the identifier of the county row the buildings belong to. When set it is used in preference to Code, which leaves the server to choose between the rows of a multi-part county.
public System.Nullable<int> CountyId { get; set; }Building2DsPostTask.ExecuteAsync(IEnumerable<Building2D>, int, LongProgressWrapper, CancellationToken) Method
Asynchronously executes the task of posting building 2D objects to the database, keyed by county identifier.
protected System.Threading.Tasks.Task<bool> ExecuteAsync(System.Collections.Generic.IEnumerable<DiGi.GIS.Classes.Building2D>? values, int countyId, DiGi.Core.Classes.LongProgressWrapper? longProgressWrapper, System.Threading.CancellationToken cancellationToken);values System.Collections.Generic.IEnumerable<DiGi.GIS.Classes.Building2D>
The collection of DiGi.GIS.Classes.Building2D instances to post.
countyId System.Int32
The identifier of the county row the buildings belong to.
longProgressWrapper DiGi.Core.Classes.LongProgressWrapper
A DiGi.Core.Classes.LongProgressWrapper tracking the progress of the operation.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<System.Boolean>
A task that represents the asynchronous operation. The task result is true if all batches were posted successfully; otherwise, false.
Building2DsPostTask.ExecuteAsync(IEnumerable<Building2D>, string, LongProgressWrapper, CancellationToken) Method
Asynchronously executes the task of posting building 2D objects to the database, keyed by administrative code.
protected System.Threading.Tasks.Task<bool> ExecuteAsync(System.Collections.Generic.IEnumerable<DiGi.GIS.Classes.Building2D>? values, string? code, DiGi.Core.Classes.LongProgressWrapper? longProgressWrapper, System.Threading.CancellationToken cancellationToken);values System.Collections.Generic.IEnumerable<DiGi.GIS.Classes.Building2D>
The collection of DiGi.GIS.Classes.Building2D instances to post.
code System.String
The administrative code associated with the buildings.
longProgressWrapper DiGi.Core.Classes.LongProgressWrapper
A DiGi.Core.Classes.LongProgressWrapper tracking the progress of the operation.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<System.Boolean>
A task that represents the asynchronous operation.
Provides API endpoints for managing and updating Building data stored in a PostgreSQL database.
public class BuildingController : DiGi.WebAPI.Classes.WebAPIControllerInheritance System.Object → Microsoft.AspNetCore.Mvc.ControllerBase → DiGi.WebAPI.Classes.WebAPIController → BuildingController
BuildingController(GISWebAPIConfigurationFileWatcher, BuildingPostgreSQLConverter, Building2DPostgreSQLConverter, AdministrativeAreal2DPostgreSQLConverter) Constructor
Initializes a new instance of the BuildingController class.
public BuildingController(DiGi.GIS.WebAPI.Classes.GISWebAPIConfigurationFileWatcher GISWebAPIConfigurationFileWatcher, DiGi.GIS.PostgreSQL.Classes.BuildingPostgreSQLConverter buildingPostgreSQLConverter, DiGi.GIS.PostgreSQL.Classes.Building2DPostgreSQLConverter building2DPostgreSQLConverter, DiGi.GIS.PostgreSQL.Classes.AdministrativeAreal2DPostgreSQLConverter administrativeAreal2DPostgreSQLConverter);GISWebAPIConfigurationFileWatcher GISWebAPIConfigurationFileWatcher
The configuration file watcher used to monitor changes to the PostgreSQL Web API configuration.
buildingPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.BuildingPostgreSQLConverter
The converter for Building objects when interacting with a PostgreSQL database.
building2DPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.Building2DPostgreSQLConverter
The converter for Building2D objects, used to read which county row a reference is already filed under.
administrativeAreal2DPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.AdministrativeAreal2DPostgreSQLConverter
The converter for administrative areal 2D data when interacting with a PostgreSQL database.
BuildingController.ContainsByReferencesAsync(List<string>, Nullable<int>, Nullable<bool>, CancellationToken) Method
Asynchronously checks for the existence of a collection of building references, optionally filtered by a county identifier.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> ContainsByReferencesAsync(System.Collections.Generic.List<string>? references, System.Nullable<int> countyId, System.Nullable<bool> inverted, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));references System.Collections.Generic.List<System.String>
A list of strings representing the building references to be checked.
countyId System.Nullable<System.Int32>
The optional county identifier used to filter the search.
inverted System.Nullable<System.Boolean>
A boolean indicating whether to return missing references (true) or existing references (false).
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult containing the set of matching reference strings.
Asynchronously retrieves the count of building records from the database, optionally filtered by a county identifier.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetCountAsync(System.Nullable<int> countyId, bool estimated=false, bool analyze=false, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));countyId System.Nullable<System.Int32>
The optional integer identifier of the county to filter the count; if null, the count is retrieved across all counties.
estimated System.Boolean
A boolean value indicating whether to read the estimated count from database statistics for faster execution on large partitions. An unanalysed partition returns 204 NoContent.
analyze System.Boolean
A boolean value indicating whether to run an analysis operation before fetching the estimated count to ensure higher accuracy.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400. Defaults to 600 seconds.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult containing the row count as a long integer, 0 for a county part that has no partition (it holds no rows), 204 NoContent when the partition exists but is unanalysed, or 404 NotFound when countyId is not a county part.
Asynchronously retrieves the building with the latest created date for an optional county identifier.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemByLatestCreatedAtAsync(System.Nullable<int> countyId, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));countyId System.Nullable<System.Int32>
An optional integer representing the county ID to filter the results.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
BuildingController.GetItemByReferenceAsync(string, Nullable<int>, Nullable<double>, Nullable<double>, Nullable<double>, Nullable<double>, CancellationToken) Method
Asynchronously retrieves the single most relevant building for the provided reference and an optional county identifier.
When the X, Y or Z coordinates are provided they are used to break ties between candidates resolved from the reference.
When the reference cannot be resolved and a point is provided, a spatial fallback search limited in X and Y by the maximum distance is performed.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemByReferenceAsync(string? reference, System.Nullable<int> countyId, System.Nullable<double> x=null, System.Nullable<double> y=null, System.Nullable<double> z=null, System.Nullable<double> maxDistance=null, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));reference System.String
The unique reference string used to identify the building.
countyId System.Nullable<System.Int32>
An optional integer representing the county ID to filter the results.
x System.Nullable<System.Double>
The optional X coordinate of the point used to break ties and to locate the building when the reference cannot be resolved.
y System.Nullable<System.Double>
The optional Y coordinate of the point used to break ties and to locate the building when the reference cannot be resolved.
z System.Nullable<System.Double>
The optional Z coordinate of the point used to break ties and to locate the building when the reference cannot be resolved.
maxDistance System.Nullable<System.Double>
The optional distance used to inflate the point in X and Y into the bounding box of the spatial fallback search. Defaults to 1.0 when not provided or invalid.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Asynchronously retrieves buildings based on a provided reference and an optional county identifier.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemsByReferenceAsync(string? reference, System.Nullable<int> countyId, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));reference System.String
The unique reference string used to identify the buildings.
countyId System.Nullable<System.Int32>
An optional integer representing the county ID to filter the results.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
BuildingController.GetItemsByReferencesAsync(IEnumerable<string>, Nullable<int>, CancellationToken) Method
Asynchronously retrieves the single most relevant building for each of the provided references.
Several rows can share one reference (different level of detail or year); each reference is reduced to one building ranked by level of detail and then by year, matching the behaviour of GetItemByReferenceAsync(string, Nullable<int>, Nullable<double>, Nullable<double>, Nullable<double>, Nullable<double>, CancellationToken) when no coordinates are supplied.
References without a matching building are omitted, so an empty array is a valid response and does not indicate an error.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemsByReferencesAsync(System.Collections.Generic.IEnumerable<string>? references, System.Nullable<int> countyId, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));references System.Collections.Generic.IEnumerable<System.String>
The collection of unique reference strings used to identify the buildings.
countyId System.Nullable<System.Int32>
An optional integer representing the county ID to filter the results.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Updates multiple building items based on the provided JSON array and identification code.
A county code does not identify a single county row: BDOT10k stores a county whose territory is disconnected as one feature per polygon part, and every part becomes its own row. Every part the code names is passed on, and each building is filed under the part it actually belongs to - see UpdateItemsByCountyIdsAsync(JsonArray, int[], string, CancellationToken) for how that is decided.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> UpdateItemsAsync(System.Text.Json.Nodes.JsonArray? jsonArray, string? code, string? key=null, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));jsonArray System.Text.Json.Nodes.JsonArray
The JSON array containing the building items to be updated.
code System.String
The identification code required for the update operation.
key System.String
The secret access key supplied in the request header.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult representing the result of the update operation.
Updates multiple building items in the database for the given county rows.
The unambiguous counterpart of UpdateItemsAsync(JsonArray, string, string, CancellationToken): it takes county identifiers rather than a code, so the caller states which rows are in play instead of leaving the server to derive them.
A single identifier is taken as stated and every building is filed under it. Several identifiers are the polygon parts of one multi-part county, and each building is then filed under the part it belongs to, decided in two steps:
-
the part already holding the building's
building_2drow, probed lowest part first. That row was filed by geometry when it was imported, and reusing its answer keeps both tables keyed by the same(county_id, reference)pair - a building filed under a part its footprint is not stored in reads back as missing. -
geometry, for a building no part holds a 2D row for: the part containing its bounding box, else the nearest part, else the part it overlaps most. Done by the converter, which drops a building it cannot place rather than filing it under a guess - such a building is reported as a rejection, not silently omitted.
The county-part lookup (step 1) not running is answered as a distinct 500 naming it, before any geometry fallback runs, and a transient database failure as 503 with Retry-After - an unreachable database must not look like a decision by geometry.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> UpdateItemsByCountyIdsAsync(System.Text.Json.Nodes.JsonArray? jsonArray, int[]? countyIds, string? key=null, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));jsonArray System.Text.Json.Nodes.JsonArray
The JSON array containing the building items to be updated.
countyIds System.Int32[]
The identifiers of the county rows the buildings belong to. Normally every polygon part of one county.
key System.String
The secret access key supplied in the request header.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult representing the result of the update operation.
Parameter class containing options for building data queries using dynamic hierarchical filters.
public class BuildingDataByFilterGroupParameter : DiGi.WebAPI.Classes.ParameterInheritance System.Object → DiGi.Core.Classes.Object → DiGi.Core.Classes.SerializableObject → DiGi.WebAPI.Classes.Parameter → BuildingDataByFilterGroupParameter
Initializes a new instance of the BuildingDataByFilterGroupParameter class.
public BuildingDataByFilterGroupParameter();Initializes a new instance of the BuildingDataByFilterGroupParameter class using an System.Text.Json.Nodes.JsonObject object.
public BuildingDataByFilterGroupParameter(System.Text.Json.Nodes.JsonObject jsonObject);jsonObject System.Text.Json.Nodes.JsonObject
The JSON object containing data used to initialize the parameter.
Gets or sets the optional list of column unique identifiers to project in the result.
public System.Collections.Generic.List<string>? ColumnUniqueIds { get; set; }System.Collections.Generic.List<System.String>
Gets or sets the county partition to read; null reads across all partitions.
The table is partitioned by county_id. Omitting this (and not filtering county_id in FilterGroup) makes the read span every partition of the national table; supply it unless a cross-partition read is intended.
public System.Nullable<int> CountyId { get; set; }10365
Gets or sets the dynamic hierarchical filter group to apply to the database query.
public DiGi.PostgreSQL.Table.Classes.FilterGroup FilterGroup { get; set; }DiGi.PostgreSQL.Table.Classes.FilterGroup
Parameter class containing options for paged building data queries, in reference (keyset) or physical order.
public class BuildingDataByPagingParameter : DiGi.WebAPI.Classes.ParameterInheritance System.Object → DiGi.Core.Classes.Object → DiGi.Core.Classes.SerializableObject → DiGi.WebAPI.Classes.Parameter → BuildingDataByPagingParameter
Initializes a new instance of the BuildingDataByPagingParameter class.
public BuildingDataByPagingParameter();Initializes a new instance of the BuildingDataByPagingParameter class using an System.Text.Json.Nodes.JsonObject object.
public BuildingDataByPagingParameter(System.Text.Json.Nodes.JsonObject jsonObject);jsonObject System.Text.Json.Nodes.JsonObject
The JSON object containing data used to initialize the parameter.
Gets or sets the list of column unique identifiers to project in the result.
public System.Collections.Generic.List<string>? ColumnUniqueIds { get; set; }System.Collections.Generic.List<System.String>
["building_id", "address"]
Gets or sets the target partition identifier (County ID).
public int CountyId { get; set; }10365
Gets or sets where the page continues from; null or omitted starts at the beginning of the county part.
In reference order it is the previous page's last reference, verbatim. In physical order it is the value of the previous response's DiGi-Next-Cursor header - an opaque heap position such as (412,7) - or, after a response that came back in reference order without the header, the last row's reference.
public string? Cursor { get; set; }30FA023C-190B-87D7-E053-CA2BA8C08B17
Gets or sets the maximum count of rows per page. Defaults to 250.
Capped because a building data row carries every derived column of a building, so a page is far heavier than its row count suggests. Ask for more pages rather than a bigger one.
public int PageSize { get; set; }100
Gets or sets a value indicating whether the part is read in physical (heap) order rather than by reference. Defaults to false, the reference order this endpoint has always answered.
Physical order reads the part sequentially instead of one random heap read per row. Measured on production: 368-654 s for a cold 155 307-row part in reference order, against about 15 s per 100 000 rows read sequentially (DiGi.GIS.WebAPI.UI#29). Use it to read a whole part when row order does not matter. The next cursor then arrives in the DiGi-Next-Cursor response header, and the endpoint falls back to reference order where physical order is unavailable (see the action's remarks).
public bool PhysicalOrder { get; set; }true
Represents a parameter containing references for querying building data.
public class BuildingDataByReferencesParameter : DiGi.WebAPI.Classes.ParameterInheritance System.Object → DiGi.Core.Classes.Object → DiGi.Core.Classes.SerializableObject → DiGi.WebAPI.Classes.Parameter → BuildingDataByReferencesParameter
Initializes a new instance of the BuildingDataByReferencesParameter class.
public BuildingDataByReferencesParameter();Initializes a new instance of the BuildingDataByReferencesParameter class using an existing BuildingDataByReferencesParameter object.
public BuildingDataByReferencesParameter(DiGi.GIS.WebAPI.Classes.BuildingDataByReferencesParameter buildingDataByReferencesParameter);buildingDataByReferencesParameter BuildingDataByReferencesParameter
The parameter object to copy data from.
Initializes a new instance of the BuildingDataByReferencesParameter class using a JSON object.
public BuildingDataByReferencesParameter(System.Text.Json.Nodes.JsonObject jsonObject);jsonObject System.Text.Json.Nodes.JsonObject
The JSON object containing parameter data.
Gets or sets the unique identifiers of the columns (Column.UniqueId). All columns will be returned if the collection is null or empty. Required if performance is a concern and the column unique identifiers are available; otherwise, the column unique identifiers will be determined by the building data PostgreSQL converter.
public System.Collections.Generic.IEnumerable<string>? ColumnUniqueIds { get; set; }System.Collections.Generic.IEnumerable<System.String>
Gets or sets the county identifier. Required if performance is a concern and the county identifier is available; otherwise, the county identifier will be determined by the building data PostgreSQL converter.
public System.Nullable<int> CountyId { get; set; }Gets or sets the references for the building data parameter.
public System.Collections.Generic.IEnumerable<string> References { get; set; }System.Collections.Generic.IEnumerable<System.String>
Represents a parameter containing subdivision ids for querying building data.
public class BuildingDataBySubdivisionIdsParameter : DiGi.WebAPI.Classes.ParameterInheritance System.Object → DiGi.Core.Classes.Object → DiGi.Core.Classes.SerializableObject → DiGi.WebAPI.Classes.Parameter → BuildingDataBySubdivisionIdsParameter
Initializes a new instance of the BuildingDataBySubdivisionIdsParameter class.
public BuildingDataBySubdivisionIdsParameter();Initializes a new instance of the BuildingDataBySubdivisionIdsParameter class using an existing BuildingDataBySubdivisionIdsParameter object.
public BuildingDataBySubdivisionIdsParameter(DiGi.GIS.WebAPI.Classes.BuildingDataBySubdivisionIdsParameter buildingDataBySubdivisionIdsParameter);buildingDataBySubdivisionIdsParameter BuildingDataBySubdivisionIdsParameter
The parameter object to copy data from.
Initializes a new instance of the BuildingDataBySubdivisionIdsParameter class using a JSON object.
public BuildingDataBySubdivisionIdsParameter(System.Text.Json.Nodes.JsonObject jsonObject);jsonObject System.Text.Json.Nodes.JsonObject
The JSON object containing parameter data.
Gets or sets the unique identifiers of the columns (Column.UniqueId). All columns will be returned if the collection is null or empty. Required if performance is a concern and the column unique identifiers are available; otherwise, the column unique identifiers will be determined by the building data PostgreSQL converter.
public System.Collections.Generic.IEnumerable<string>? ColumnUniqueIds { get; set; }System.Collections.Generic.IEnumerable<System.String>
Gets or sets the subdivision ids for the building data
public System.Collections.Generic.IEnumerable<int> SubdivisionIds { get; set; }System.Collections.Generic.IEnumerable<System.Int32>
Controller responsible for handling API requests related to building data retrieved from a PostgreSQL database.
public class BuildingDataController : DiGi.WebAPI.Classes.WebAPIControllerInheritance System.Object → Microsoft.AspNetCore.Mvc.ControllerBase → DiGi.WebAPI.Classes.WebAPIController → BuildingDataController
BuildingDataController(GISWebAPIConfigurationFileWatcher, BuildingDataPostgreSQLConverter, Building2DPostgreSQLConverter, AdministrativeAreal2DPostgreSQLConverter) Constructor
Initializes a new instance of the BuildingDataController class.
Both converters and the configuration watcher are taken on the one constructor, because the coverage read compares two tables that sit in different databases and write operations require authorization. A second constructor is not an option: a controller with more than one public constructor fails activation and answers 500 on every one of its endpoints.
public BuildingDataController(DiGi.GIS.WebAPI.Classes.GISWebAPIConfigurationFileWatcher GISWebAPIConfigurationFileWatcher, DiGi.GIS.PostgreSQL.Classes.BuildingDataPostgreSQLConverter buildingDataPostgreSQLConverter, DiGi.GIS.PostgreSQL.Classes.Building2DPostgreSQLConverter building2DPostgreSQLConverter, DiGi.GIS.PostgreSQL.Classes.AdministrativeAreal2DPostgreSQLConverter administrativeAreal2DPostgreSQLConverter);GISWebAPIConfigurationFileWatcher GISWebAPIConfigurationFileWatcher
The GISWebAPIConfigurationFileWatcher used to verify authorization and permissions for write operations.
buildingDataPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.BuildingDataPostgreSQLConverter
The DiGi.GIS.PostgreSQL.Classes.BuildingDataPostgreSQLConverter used to handle building data operations and database conversions.
building2DPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.Building2DPostgreSQLConverter
The DiGi.GIS.PostgreSQL.Classes.Building2DPostgreSQLConverter used to read the buildings a county holds, which is the other half of the coverage comparison.
administrativeAreal2DPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.AdministrativeAreal2DPostgreSQLConverter
The DiGi.GIS.PostgreSQL.Classes.AdministrativeAreal2DPostgreSQLConverter used to widen a row no named part holds to every part of the named county.
The largest number of references one request may ask for.
The whole collection travels into a single statement, so an unbounded list is an unbounded statement. A caller with more than this to ask about should page rather than widen the request.
private const int referenceCount_Maximum = 10000;BuildingDataController.GetAggregateSummariesAsync(AggregateSummariesRequestParameter, int, CancellationToken) Method
Computes several single-value aggregate measures - different columns, different functions - over one shared partition and filter in one request, served as one database command on one connection (DiGi-Organization/DiGi.GIS.WebAPI#56).
The answers arrive as a JSON array in the request's measure order; a SQL NULL aggregate (for example Avg over zero rows) is preserved as JSON null. An empty Measures list, a list above the cap of MaximumAggregateSummariesMeasureCount, or a measure naming a column the stored table does not hold is refused with 400 - a measure failure answers the whole request, never a partial result (DiGi-Organization/DiGi.GIS.WebAPI#56).
Out of scope by design: per-measure filters, multi-value measures (SplitValueDistribution, SplitDistinctCount) and histograms (DiGi-Organization/DiGi.GIS.WebAPI#56).
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetAggregateSummariesAsync(DiGi.GIS.WebAPI.Classes.AggregateSummariesRequestParameter aggregateSummariesRequestParameter, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));aggregateSummariesRequestParameter AggregateSummariesRequestParameter
The parameter containing the shared county identifier, the shared filter, and the ordered list of measures.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task representing the asynchronous operation, returning the measures as a JSON array in request order.
Asynchronously retrieves all available building data column categories.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetCategoriesAsync(int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Asynchronously retrieves all column references, optionally filtered by the specified categories.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetColumnReferencesAsync(System.Collections.Generic.List<string>? categories=null, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));categories System.Collections.Generic.List<System.String>
An optional list of category names to filter the column references by.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task representing the asynchronous operation, returning a list of column references.
Asynchronously retrieves all available column definitions for building data.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetColumnsAsync(int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Asynchronously retrieves all columns filtered by the specified categories.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetColumnsByCategoriesAsync(System.Collections.Generic.List<string>? categories=null, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));categories System.Collections.Generic.List<System.String>
An optional list of category names to filter the columns by. If null, the filtering behavior is determined by the underlying data source.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
BuildingDataController.GetColumnsByCategoriesParameterAsync(ColumnsByCategoriesParameter, int, CancellationToken) Method
Retrieves all columns with given categories by columns by categories parameter (which contains categories).
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetColumnsByCategoriesParameterAsync(DiGi.GIS.WebAPI.Classes.ColumnsByCategoriesParameter columnsByCategoriesParameter, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));columnsByCategoriesParameter ColumnsByCategoriesParameter
The parameter containing the categories for querying columns.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
Column DiGi.PostgreSQL.Table.Classes.Column
Retrieves the unique identifiers for columns, optionally filtered by the specified categories.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetColumnUniqueIdsAsync(System.Collections.Generic.List<string>? categories=null, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));categories System.Collections.Generic.List<System.String>
An optional list of category names used to filter the column references.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
BuildingDataController.GetCountByAdministrativeAreal2DIdAsync(BuildingDataCountByAdministrativeAreal2DIdParameter, int, CancellationToken) Method
Asynchronously counts the building data rows of an administrative area, optionally narrowed by a dynamic hierarchical filter group, in one call.
An invalid filter column, or a filter value the column's type cannot convert, is refused with 400 Bad Request naming the offending column and, where known, the operator (DiGi-Organization/DiGi.GIS.WebAPI#54).
Resolution: (1) the area reference is read by id, and a missing one answers 404. (2) An area above the Subdivision level (Country, Voivodeship, County, Municipality) is resolved to its Subdivision children, grouped by the county partition they sit in. (3) An area that is a Subdivision is counted by membership, subdivision_id = id. (4) Per distinct county - the building_data partition key - one count runs with subdivision_id IN (that county's subdivisions) plus the caller's filters, and the counts are summed. The counties are counted strictly one after another, never in parallel, because concurrent requests exhaust the Npgsql pool and turn healthy endpoints into 500s. (5) An area above the Subdivision level that resolves to no Subdivision answers 204.
Duration (measured 2026-10-14 on the estate; figures are measurements, not guarantees): a single county area returns in under a second; a voivodeship (typically 10–20 counties) takes roughly 1–3 minutes; a country-level area spans 400+ counties and exceeds normal client timeouts. commandtimeout applies per command, not per request: each sequential per-county count gets its own timeout, so total wall-clock can approach N × commandtimeout in the worst case.
What the count is not. subdivision_id files a building under its smallest containing subdivision and the Subdivision layer nests, so for a nested Subdivision (a district whose neighbourhoods are also subdivisions) the count covers only the buildings filed under that exact id and undercounts the district (DiGi.GIS.PostgreSQL#75, #77); a polygon-based count is a follow-up. Rows with subdivision_id IS NULL are excluded, so the count of an area is not the count of every building inside its polygon. A building filed in a county partition other than the one its subdivision belongs to (a subdivision of a neighbouring county) is not reached, because each county is counted with only its own subdivisions.
An unfiltered body is valid (FilterGroup omitted counts every building the area resolves to). At most MaximumAdministrativeAreal2DCountyCount distinct counties are iterated; an area spanning more answers 400 naming that limit and nothing is counted. 204 means the resolution found no subdivision to filter by - not evidence that the area holds no buildings. 404 means the area does not exist, or no connection could be built, or a filter column could not be resolved. A filter value that cannot be converted to its column's type answers 400.
A client that sends the same In filter shape as a JSON array is subject to DiGi-Organization/DiGi.PostgreSQL#10; this endpoint builds its own subdivision list server-side and does not depend on that fix.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetCountByAdministrativeAreal2DIdAsync(DiGi.GIS.WebAPI.Classes.BuildingDataCountByAdministrativeAreal2DIdParameter parameter, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));parameter BuildingDataCountByAdministrativeAreal2DIdParameter
The parameter containing the administrative area identifier and the optional dynamic hierarchical filters.
commandTimeout System.Int32
The timeout in seconds for the execution of each command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult carrying the count as a bare JSON integer, 204 NoContent when no subdivision was found, 404 NotFound, or 400/503/500 on the guarded and failure paths.
Asynchronously retrieves the number of building data rows stored for one county.
The cheapest question that can be asked of the table. A county part that holds no rows answers 0, the same as coveragebycountyid; only an identifier that is not a county part answers 404.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetCountByCountyIdAsync(int countyId, bool estimated=false, bool analyze=false, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));countyId System.Int32
The identifier of the county to count.
estimated System.Boolean
Reads the planner's row estimate instead of counting the rows. Far faster on a partition of millions and accurate to a few percent, but it reflects the last time the partition was analysed rather than this moment. An unanalysed partition returns 204 NoContent.
analyze System.Boolean
A boolean value indicating whether to perform an ANALYZE operation before reading the estimate to ensure statistics are current.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400. Defaults to 600 seconds.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult carrying the count, 0 for a county part that has no partition (it holds no rows), 204 NoContent when the partition exists but is unanalysed, or 404 NotFound when the identifier is not a county part.
BuildingDataController.GetCountByFilterGroupAsync(BuildingDataCountByFilterGroupParameter, int, CancellationToken) Method
Asynchronously counts the building data rows of a county partition, or of the whole table, matching an optional dynamic hierarchical filter group.
The table is partitioned by county_id. Supply CountyId to scope the read to one county partition; omitting it (and not filtering county_id in the filter group) makes the read span every partition of the national table, which is the cost of an unscoped cross-partition read. Measured 2026-10-14 on the estate: with a CountyId the count returns in 0.1 s; without one it exceeds 300 s (client timeout). The sibling GET countbycountyid refuses an unscoped request with 400 ([BindRequired]); this endpoint accepts it. Figures are measurements, not guarantees.
The answer is a bare JSON integer: the COUNT(*) of the scope, so it does not depend on any column being non-null and it never needs the magic reference column or an aggregate function. A null or empty filter group counts the whole partition scope; a filter that matches nothing answers 0 with a 200, not an error status.
An invalid filter column, or a filter value the column's type cannot convert, is refused with 400 Bad Request naming the offending column and, where known, the operator (DiGi-Organization/DiGi.GIS.WebAPI#54).
De-duplication across county parts is a separate concern (referenceuniquenesssummary) and is not applied here.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetCountByFilterGroupAsync(DiGi.GIS.WebAPI.Classes.BuildingDataCountByFilterGroupParameter parameter, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));parameter BuildingDataCountByFilterGroupParameter
The parameter containing the optional partition (county) and the optional dynamic hierarchical filters.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult carrying the count as a bare JSON integer, 404 NotFound when no connection could be built or a filter column could not be resolved, or 400/503/500 on the guarded and failure paths.
Asynchronously retrieves the counties whose building data holds a row for one reference.
A reference addresses one building of one county, so more than one identifier coming back means the reference was written outside the county it belongs to.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetCountyIdsByReferenceAsync(string reference, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));reference System.String
The building reference to look up.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400. Defaults to 600 seconds.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult carrying the county identifiers in ascending order, or 404 when the reference is not stored.
Asynchronously measures what one county's building data holds against the buildings that county actually has.
What a row count cannot answer: how much was left out, and how much of that no run could have reached. A shortfall larger than the unresolved subdivision count is a run that did not finish what it could have.
Reads both databases - the buildings from the main one and their data from the storage one - so it costs more than a count. Call it per county rather than in a sweep.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetCoverageByCountyIdAsync(int countyId, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));countyId System.Int32
The identifier of the county to measure.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400. Defaults to 600 seconds.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult carrying the DiGi.GIS.PostgreSQL.Classes.BuildingDataCoverageResult, or 404 when either side could not be read.
Asynchronously retrieves the references the building data holds under more than one county, ordered by collision count descending.
Expected to come back empty. A reference addresses one building of one county, so anything listed here was written outside the county it belongs to and nothing removes it afterwards.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetDuplicateReferencesAsync(int limit=100, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));limit System.Int32
The maximum number of references to return. Defaults to 100.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400. Defaults to 600 seconds.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult carrying the duplicated references, or 404 when there are none.
BuildingDataController.GetHistogramSummaryAsync(HistogramRequestParameter, int, CancellationToken) Method
Generates a value range distribution histogram for a specific building data column inside a county partition, applying optional dynamic filters.
Each row of the answer is one bucket - {bucket, rangeStart, rangeEnd, count}, the actual minimum and maximum of the values the bucket holds and their count. The buckets are of equal value width unless the body asks for DiGi.PostgreSQL.Table.Enums.HistogramBucketing.EqualCount (HistogramBucketing: 1), which gives every bucket the same number of rows and keeps a skewed column's resolution where its rows are (DiGi-Organization/DiGi.GIS.WebAPI#35).
An invalid target or filter column, or a filter value the column's type cannot convert, is refused with 400 Bad Request naming the offending column and, where known, the operator. A scope that holds no non-NULL values keeps its documented 404 empty answer (DiGi-Organization/DiGi.GIS.WebAPI#54).
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetHistogramSummaryAsync(DiGi.GIS.WebAPI.Classes.HistogramRequestParameter histogramRequestParameter, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));histogramRequestParameter HistogramRequestParameter
The parameter containing the target column, county identifier, desired bucket count, bucketing rule, and optional dynamic filters.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task representing the asynchronous operation, returning the histogram bucket list as a JSON array.
BuildingDataController.GetMultivalueAggregateSummaryAsync(MultivalueAggregateRequestParameter, int, CancellationToken) Method
Computes multi-value statistical summaries (SplitDistinctCount, SplitValueDistribution) on a partition column.
An invalid target or filter column, or a filter value the column's type cannot convert, is refused with 400 Bad Request naming the offending column and, where known, the operator (DiGi-Organization/DiGi.GIS.WebAPI#54).
Group-by count: SplitValueDistribution (multivalueAggregateFunction = 1) on a single-value column returns one { "item", "count" } object per distinct value, ordered count descending. Worked example (2026-10-12, partition countyId 53477, gmina Łomianki): columnUniqueId "municipality_name" answers [{ "item": "Łomianki", "count": 10502 }, { "item": "Stare Babice", "count": 7976 }, …].
The result is capped at 1000 groups plus one trailing truncation-marker row (drop the last element when the array is that long). A non-text column is cast to its text form and distributed over it, so a boolean such as is_residential yields true/false items rather than a failure (DiGi-Organization/DiGi.PostgreSQL#11).
SplitDistinctCount (multivalueAggregateFunction = 0) counts the distinct split sub-items instead of returning them. For the plain distinct-value list (no split, no count), use uniquevalues.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetMultivalueAggregateSummaryAsync(DiGi.GIS.WebAPI.Classes.MultivalueAggregateRequestParameter multivalueAggregateRequestParameter, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));multivalueAggregateRequestParameter MultivalueAggregateRequestParameter
The parameter containing target column, multi-value aggregate function, county identifier, and optional separator.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task representing the asynchronous operation, returning the aggregate result as a JSON node.
BuildingDataController.GetSinglevalueAggregateSummaryAsync(SinglevalueAggregateRequestParameter, int, CancellationToken) Method
Computes single-value statistical summaries (Avg, Sum, Min, Max, Count, DistinctCount) on a partition column.
An invalid target or filter column, or a filter value the column's type cannot convert, is refused with 400 Bad Request naming the offending column and, where known, the operator; a valid filter that matches nothing keeps its 200 empty aggregate (DiGi-Organization/DiGi.GIS.WebAPI#54).
Row count: to count the matching rows, set columnUniqueId "reference" and singlevalueAggregateFunction 4 (Count) - reference is the always-present column and Count tallies the non-null rows, so the pair is the plain "how many rows" recipe. singlevalueAggregateFunction values: 0 Avg (mean of a numeric column), 1 Sum (total), 2 Min, 3 Max, 4 Count (non-null row count), 5 DistinctCount (unique values).
Count with a filter - "residential buildings over 100 m² in gmina Łomianki" (2026-10-12, partition countyId 53477): { "columnUniqueId": "reference", "singlevalueAggregateFunction": 4, "countyId": 53477, "filterGroup": { "logicalOperator": 0, "filterConditions": [ { "columnUniqueId": "is_residential", "filterOperator": 0, "value": true }, { "columnUniqueId": "floor_area", "filterOperator": 2, "value": 100 } ] } } answers 6798 (unfiltered anchor 13719; DiGi-Organization/DiGi.GIS.WebAPI#53).
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetSinglevalueAggregateSummaryAsync(DiGi.GIS.WebAPI.Classes.SinglevalueAggregateRequestParameter singlevalueAggregateRequestParameter, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));singlevalueAggregateRequestParameter SinglevalueAggregateRequestParameter
The parameter containing target column, single-value aggregate function, and county identifier.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task representing the asynchronous operation, returning the aggregate result as a JSON node.
BuildingDataController.GetTableByBuildingDataByPagingParameterAsync(BuildingDataByPagingParameter, int, CancellationToken) Method
Retrieves one page of a county part's building data, following a cursor from page to page.
Reference order (default, PhysicalOrder false): rows ordered by reference. The cursor is the previous page's last reference, and a page shorter than PageSize ends the part. Every row is one random heap read, which on a large part is slow: part 55417 (155 307 rows) took 368-654 s cold (DiGi.GIS.WebAPI.UI#29).
Physical order (PhysicalOrder true): rows in heap order, read sequentially. The next cursor is returned in the DiGi-Next-Cursor response header (NextCursor), and a response without the header ends the part. The page may still carry the part's last rows. Row order is unspecified. When the physical read is unavailable - a database older than PostgreSQL 14, or a Cursor that is not a physical position - the same request is answered by the reference-ordered page for that Cursor, without the header. A client that keeps asking for physical order and follows the last row's reference whenever the header is absent from a full page therefore pages correctly either way.
Concurrent writes. Each request reads its own snapshot. In physical order a row rewritten during a walk moves: it is repeated when its new version lands ahead of the walk and missed when it lands behind. Clients dedup on (reference, county_id), which covers the repeats. The misses are the price of the sequential read and matter only while the part is being rewritten.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetTableByBuildingDataByPagingParameterAsync(DiGi.GIS.WebAPI.Classes.BuildingDataByPagingParameter buildingDataByPagingParameter, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));buildingDataByPagingParameter BuildingDataByPagingParameter
The parameter containing paging options, including column projections, county identifier, cursor, page size and order.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task representing the asynchronous operation, returning the populated table. In physical order the next cursor, if any, is in the DiGi-Next-Cursor header.
BuildingDataController.GetTableByBuildingDataByReferencesParameterAsync(BuildingDataByReferencesParameter, int, CancellationToken) Method
Retrieves a building data table by building data by references parameter (column unique ids, county id and references).
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetTableByBuildingDataByReferencesParameterAsync(DiGi.GIS.WebAPI.Classes.BuildingDataByReferencesParameter buildingDataByReferencesParameter, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));buildingDataByReferencesParameter BuildingDataByReferencesParameter
The parameter containing references for querying building data, including column unique identifiers, county identifier, and specific references.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult representing the result of the operation, typically containing a DiGi.Core.IO.Table.Classes.Table if found.
BuildingDataController.GetTableByBuildingDataBySubdivisionIdsParameterAsync(BuildingDataBySubdivisionIdsParameter, int, CancellationToken) Method
Retrieves a building data table by building data by subdivision ids parameter (column unique ids, subdivision ids).
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetTableByBuildingDataBySubdivisionIdsParameterAsync(DiGi.GIS.WebAPI.Classes.BuildingDataBySubdivisionIdsParameter buildingDataBySubdivisionIdsParameter, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));buildingDataBySubdivisionIdsParameter BuildingDataBySubdivisionIdsParameter
The parameter containing the subdivision IDs and optional column unique identifiers for querying building data.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
BuildingDataController.GetTableByFilterGroupAsync(BuildingDataByFilterGroupParameter, int, CancellationToken) Method
Retrieves a building data table filtered by the specified dynamic hierarchical filters.
The table is partitioned by county_id. Supply CountyId to scope the read to one county partition; omitting it (and not filtering county_id in the filter group) makes the read span every partition of the national table, which is the cost of an unscoped cross-partition read. A caller county_id condition in the filter group is left as-is and the CountyId condition is ANDed with it, so a conflicting pair answers empty.
An invalid filter column, or a filter value the column's type cannot convert, is refused with 400 Bad Request naming the offending column and, where known, the operator (DiGi-Organization/DiGi.GIS.WebAPI#54).
Per-operator value shapes: each FilterCondition's Value takes a scalar for the comparison operators, a JSON array for In/NotIn, and a case-insensitive substring for Contains; an unconvertible value is refused with 400 (see FilterCondition.Value for the full contract; DiGi-Organization/DiGi.PostgreSQL#13).
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetTableByFilterGroupAsync(DiGi.GIS.WebAPI.Classes.BuildingDataByFilterGroupParameter buildingDataByFilterGroupParameter, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));buildingDataByFilterGroupParameter BuildingDataByFilterGroupParameter
The parameter containing the dynamic filter group, the optional county partition, and the optional column unique identifiers.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task representing the asynchronous operation, returning the populated filtered table.
BuildingDataController.GetTableByReferenceAsync(string, Nullable<int>, int, CancellationToken) Method
Retrieves a building data table for one specific building.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetTableByReferenceAsync(string reference, System.Nullable<int> countyId=null, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));reference System.String
Building reference
countyId System.Nullable<System.Int32>
The unique identifier of the county for which building belongs to.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task representing the asynchronous operation, returning the populated filtered table with data for sigle building.
Retrieves unique values for a specified column unique identifier and an optional county identifier.
An invalid column, or a filter value the column's type cannot convert, is refused with 400 Bad Request naming the offending column and, where known, the operator; a scope that holds nothing keeps its documented 404 empty answer (DiGi-Organization/DiGi.GIS.WebAPI#54).
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetUniqueValuesAsync(string columnUniqueId, System.Nullable<int> countyId=null, int commandTimeout=90, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));columnUniqueId System.String
The unique identifier of the column from which to retrieve unique values.
countyId System.Nullable<System.Int32>
The optional integer identifier of the county used to filter the results.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400. Defaults to 90 seconds; a national (unfiltered) unique-values scan runs well past that and should pass commandtimeout=600 explicitly.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
BuildingDataController.GetUniqueValuesByColumnUniqueIdParameterAsync(UniqueValuesByColumnUniqueIdParameter, int, CancellationToken) Method
Retrieves unique values for a given UniqueValuesByColumnUniqueIdParameter (column unique id and optionally county id), applying optional dynamic filters.
An invalid column, or a filter value the column's type cannot convert, is refused with 400 Bad Request naming the offending column and, where known, the operator; a scope that holds nothing keeps its documented 404 empty answer (DiGi-Organization/DiGi.GIS.WebAPI#54).
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetUniqueValuesByColumnUniqueIdParameterAsync(DiGi.GIS.WebAPI.Classes.UniqueValuesByColumnUniqueIdParameter uniqueValuesByColumnUniqueIdParameter, int commandTimeout=90, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));uniqueValuesByColumnUniqueIdParameter UniqueValuesByColumnUniqueIdParameter
The parameter containing the column unique identifier, optional county identifier, and optional dynamic filters.
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400. Defaults to 90 seconds; a national (unfiltered) unique-values scan runs well past that and should pass commandtimeout=600 explicitly.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult representing the result of the operation, typically a list of unique values or a not found status.
BuildingDataController.UpdateItemsByCountyIdsAsync(JsonObject, int[], int, string, CancellationToken) Method
Asynchronously updates building data for the specified county identifiers.
The identifiers are the parts of one county in play, and each row is filed under the part already holding the building_2d row its reference names, probed lowest part first - whether one identifier arrived or several, since naming one part is not evidence the county has one. That row was filed by geometry when it was imported, so reusing its answer keeps both tables keyed by the same (county_id, reference) pair.
A row no named part holds is widened to every part of the county its parts name, and only a row no part of the county holds is left unwritten - nothing states where it belongs, and storing it under a guessed part is the state this replaced.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> UpdateItemsByCountyIdsAsync(System.Text.Json.Nodes.JsonObject? jsonObject, int[]? countyIds, int commandTimeout=600, string? key=null, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));jsonObject System.Text.Json.Nodes.JsonObject
The JSON object containing the table structure and data to be updated.
countyIds System.Int32[]
The identifiers of the county rows the building data belongs to. Normally every polygon part of one county.
commandTimeout System.Int32
The timeout in seconds for the execution of the database command. A value of 0 disables the timeout; a negative value is refused with HTTP 400. Defaults to 600.
key System.String
The secret access key supplied in the request header.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task representing the asynchronous operation with an Microsoft.AspNetCore.Mvc.IActionResult containing an UpdateItemsResult.
Parameter class containing options for counting the building data rows of an administrative area matching an optional dynamic hierarchical filter group.
public class BuildingDataCountByAdministrativeAreal2DIdParameter : DiGi.WebAPI.Classes.ParameterInheritance System.Object → DiGi.Core.Classes.Object → DiGi.Core.Classes.SerializableObject → DiGi.WebAPI.Classes.Parameter → BuildingDataCountByAdministrativeAreal2DIdParameter
Initializes a new instance of the BuildingDataCountByAdministrativeAreal2DIdParameter class.
public BuildingDataCountByAdministrativeAreal2DIdParameter();Initializes a new instance of the BuildingDataCountByAdministrativeAreal2DIdParameter class using an System.Text.Json.Nodes.JsonObject object.
public BuildingDataCountByAdministrativeAreal2DIdParameter(System.Text.Json.Nodes.JsonObject jsonObject);jsonObject System.Text.Json.Nodes.JsonObject
The JSON object containing data used to initialize the parameter.
Gets or sets the identifier of the administrative area whose buildings are counted.
Nullable so that an omitted property is distinguishable from a legitimate value and can be refused with HTTP 400 rather than silently meaning 0.
public System.Nullable<int> AdministrativeAreal2DId { get; set; }53469
Gets or sets the optional dynamic hierarchical filters applied on top of the area; null (or an empty group) counts every building the area resolves to.
public DiGi.PostgreSQL.Table.Classes.FilterGroup? FilterGroup { get; set; }DiGi.PostgreSQL.Table.Classes.FilterGroup
Parameter class containing options for counting building data rows matching an optional dynamic hierarchical filter group.
public class BuildingDataCountByFilterGroupParameter : DiGi.WebAPI.Classes.ParameterInheritance System.Object → DiGi.Core.Classes.Object → DiGi.Core.Classes.SerializableObject → DiGi.WebAPI.Classes.Parameter → BuildingDataCountByFilterGroupParameter
Initializes a new instance of the BuildingDataCountByFilterGroupParameter class.
public BuildingDataCountByFilterGroupParameter();Initializes a new instance of the BuildingDataCountByFilterGroupParameter class using an System.Text.Json.Nodes.JsonObject object.
public BuildingDataCountByFilterGroupParameter(System.Text.Json.Nodes.JsonObject jsonObject);jsonObject System.Text.Json.Nodes.JsonObject
The JSON object containing data used to initialize the parameter.
Gets or sets the optional partition (county) to count; null counts across all partitions.
public System.Nullable<int> CountyId { get; set; }10365
Gets or sets the optional dynamic hierarchical filters to apply prior to counting; null (or an empty group) counts the whole partition scope.
public DiGi.PostgreSQL.Table.Classes.FilterGroup? FilterGroup { get; set; }DiGi.PostgreSQL.Table.Classes.FilterGroup
Web API controller for building model operations, providing endpoints to retrieve building model data.
public class BuildingModelController : DiGi.WebAPI.Classes.WebAPIControllerInheritance System.Object → Microsoft.AspNetCore.Mvc.ControllerBase → DiGi.WebAPI.Classes.WebAPIController → BuildingModelController
BuildingModelController(GISWebAPIConfigurationFileWatcher, BuildingModelPostgreSQLConverter, Building2DPostgreSQLConverter, AdministrativeAreal2DPostgreSQLConverter) Constructor
Initializes a new instance of the BuildingModelController class.
public BuildingModelController(DiGi.GIS.WebAPI.Classes.GISWebAPIConfigurationFileWatcher GISWebAPIConfigurationFileWatcher, DiGi.GIS.PostgreSQL.Classes.BuildingModelPostgreSQLConverter buildingModelPostgreSQLConverter, DiGi.GIS.PostgreSQL.Classes.Building2DPostgreSQLConverter building2DPostgreSQLConverter, DiGi.GIS.PostgreSQL.Classes.AdministrativeAreal2DPostgreSQLConverter administrativeAreal2DPostgreSQLConverter);GISWebAPIConfigurationFileWatcher GISWebAPIConfigurationFileWatcher
The configuration file watcher for the GIS PostgreSQL Web API.
buildingModelPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.BuildingModelPostgreSQLConverter
The converter used for building model data operations in PostgreSQL.
building2DPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.Building2DPostgreSQLConverter
The converter used for Building 2D data operations in PostgreSQL.
administrativeAreal2DPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.AdministrativeAreal2DPostgreSQLConverter
The converter used to resolve an administrative area code to its county identifier.
Asynchronously retrieves the number of building model rows stored for one county part.
Compared against gis/Building2D/referencesbycountyid it tells whether a county's regeneration covered every building; the count is exact, so it walks the partition.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetCountByCountyIdAsync(int countyId, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));countyId System.Int32
The identifier of the county part (the building_2d.county_id value, one per polygon part).
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400. Defaults to 600 seconds.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult carrying the row count, 0 for a county part that has no building model partition, or 404 when the identifier is not a county part.
BuildingModelController.GetItemsByCircleAsync(double, double, Nullable<double>, Nullable<double>, Nullable<double>, CancellationToken) Method
Retrieves the building models stored in the database for all buildings within a specified circle.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemsByCircleAsync(double x, double y, System.Nullable<double> radius, System.Nullable<double> diameter, System.Nullable<double> tolerance=1E-06, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));The X-coordinate of the center point of the search circle.
The Y-coordinate of the center point of the search circle.
radius System.Nullable<System.Double>
The radius of the search circle. Either radius or diameter must be supplied; if both are supplied, radius takes precedence.
diameter System.Nullable<System.Double>
The diameter of the search circle. Either radius or diameter must be supplied; if both are supplied, radius takes precedence.
tolerance System.Nullable<System.Double>
An optional tolerance value for the spatial query. If not provided, the default distance tolerance is used.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by the caller to cancel the asynchronous operation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
BuildingModelController.GetItemsByReferencesAsync(IEnumerable<string>, Nullable<int>, Nullable<long>, CancellationToken) Method
Retrieves building models stored in the database for the specified references.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetItemsByReferencesAsync(System.Collections.Generic.IEnumerable<string>? references, System.Nullable<int> countyId, System.Nullable<long> limit=null, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));references System.Collections.Generic.IEnumerable<System.String>
The building references identifying the building models to retrieve. This value can be null.
countyId System.Nullable<System.Int32>
The optional county identifier used to narrow the search. This value can be null.
limit System.Nullable<System.Int64>
The optional maximum number of building models to retrieve. This value can be null.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by the caller to cancel the asynchronous operation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Asynchronously retrieves the most recent creation stamp among the building model rows of one county part.
The model JSON carries no timestamp, so this is the only way to tell through the API whether a county holds the rows of the latest regeneration run or still those of an earlier one.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetLatestCreatedAtByCountyIdAsync(int countyId, int commandTimeout=600, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));countyId System.Int32
The identifier of the county part (the building_2d.county_id value, one per polygon part).
commandTimeout System.Int32
The timeout in seconds for the execution of the command. A value of 0 disables the timeout; a negative value is refused with HTTP 400. Defaults to 600 seconds.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult carrying the stamp as an ISO 8601 UTC string, or 404 when the county has no building model partition or it holds no rows.
Writes the given building models to the partition of a single county row, replacing whatever those buildings already held there.
Shared by both update actions so the county row is resolved once, by the action, and this method never has to guess one.
A post replaces rather than adds. A model row is addressed by the identifier of the model it holds, and a model is handed a fresh one whenever it is created, so the write itself always appends - see DiGi.GIS.PostgreSQL.Classes.Building2DReferencedObject<>. Left at that, regenerating a county would add a model to every building instead of replacing its own, so what the buildings already held is read first and removed once the write has succeeded. A building therefore ends up holding exactly the models this call sent for it.
The identifiers are read before the write and deleted after it, deliberately in that order: an interrupted call then leaves the building holding both its old and its new model, which is recoverable, rather than holding neither.
private System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> UpdateAsync(System.Collections.Generic.List<DiGi.Analytical.Building.Classes.BuildingModel> buildingModels, int countyId);buildingModels System.Collections.Generic.List<DiGi.Analytical.Building.Classes.BuildingModel>
The building models to write.
countyId System.Int32
The identifier of the county row the models belong to.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Updates multiple building model items in the database, keyed by administrative area code.
A county code does not identify a single county row: BDOT10k stores a county whose territory is disconnected as one feature per polygon part, and every part becomes its own row. Every part the code names is passed on, and each model is filed under the part it actually belongs to - see UpdateItemsByCountyIdsAsync(JsonArray, int[], string, CancellationToken) for how that is decided.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> UpdateItemsAsync(System.Text.Json.Nodes.JsonArray? jsonArray, string? code, string? key=null, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));jsonArray System.Text.Json.Nodes.JsonArray
The JSON array containing the building models to be updated.
code System.String
The administrative area code the building models belong to, resolved server-side to a county identifier.
key System.String
The secret access key supplied in the request header.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
BuildingModelController.UpdateItemsByCountyIdsAsync(JsonArray, int[], string, CancellationToken) Method
Updates multiple building model items in the database for the given county rows.
The unambiguous counterpart of UpdateItemsAsync(JsonArray, string, string, CancellationToken): it takes county identifiers rather than a code, so the caller states which rows are in play instead of leaving the server to derive them.
The identifiers are the parts of one county in play, and each model is filed under the part already holding the building_2d row its reference names, probed lowest part first - whether one identifier arrived or several, since naming one part is not evidence the county has one. That row was filed by geometry when it was imported, so reusing its answer keeps both tables keyed by the same (county_id, reference) pair.
A model no named part holds is widened to every part of the county its parts name, and only a model no part of the county holds is left unwritten - nothing states where it belongs, and storing it under a guessed part is the state this replaced.
Nothing filed is answered as a failure, not a quiet no-op: the county-part lookup not running answers a distinct 500 naming it, a transient database failure answers 503 with Retry-After, and a non-empty batch in which no model could be filed under any county answers 500. This is the endpoint behind a regeneration that once posted 33 687 models into an unreachable database and reported success.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> UpdateItemsByCountyIdsAsync(System.Text.Json.Nodes.JsonArray? jsonArray, int[]? countyIds, string? key=null, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));jsonArray System.Text.Json.Nodes.JsonArray
The JSON array containing the building models to be updated. This value can be null.
countyIds System.Int32[]
The identifiers of the county rows the building models belong to. Normally every polygon part of one county.
key System.String
The secret access key supplied in the request header.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Provides functionality to handle the asynchronous posting of DiGi.Analytical.Building.Classes.BuildingModel collections to the PostgreSQL database.
public class BuildingModelsPostTask : DiGi.GIS.WebAPI.Classes.SerializableObjectsPostTask<DiGi.Analytical.Building.Classes.BuildingModel>Inheritance System.Object → DiGi.Core.Classes.BackgroundTask → DiGi.Core.Classes.CancelableBackgroundTask → DiGi.Core.Classes.ReportableBackgroundTask<System.Int64> → DiGi.GIS.WebAPI.Classes.SerializableObjectsPostTask<DiGi.Analytical.Building.Classes.BuildingModel> → BuildingModelsPostTask
Initializes a new instance of the BuildingModelsPostTask class.
public BuildingModelsPostTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager GISWebAPIManager);GISWebAPIManager GISWebAPIManager
The GISWebAPIManager instance used to communicate with the server.
Gets or sets the administrative area code the building models belong to. It is resolved server-side to a county identifier.
A code does not identify a single county row - a multi-part county holds one row per polygon part - so set CountyIds instead wherever the identifiers are already known. CountyIds takes precedence when both are set.
public string? Code { get; set; }Gets or sets the identifiers of the county rows the building models belong to - normally every polygon part of one county, since a single id is not evidence the code has one part. When set it is used in preference to Code, which lets the server resolve the code to every part.
public System.Collections.Generic.HashSet<int>? CountyIds { get; set; }System.Collections.Generic.HashSet<System.Int32>
BuildingModelsPostTask.ExecuteAsync(IEnumerable<BuildingModel>, string, LongProgressWrapper, CancellationToken) Method
Asynchronously executes the task of posting building models to the database in memory-size-split batches.
protected System.Threading.Tasks.Task<bool> ExecuteAsync(System.Collections.Generic.IEnumerable<DiGi.Analytical.Building.Classes.BuildingModel>? buildingModels, string? code, DiGi.Core.Classes.LongProgressWrapper? longProgressWrapper, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));buildingModels System.Collections.Generic.IEnumerable<DiGi.Analytical.Building.Classes.BuildingModel>
The collection of DiGi.Analytical.Building.Classes.BuildingModel instances to post.
code System.String
The administrative area code the building models belong to.
longProgressWrapper DiGi.Core.Classes.LongProgressWrapper
A DiGi.Core.Classes.LongProgressWrapper tracking the progress of the operation.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<System.Boolean>
A task that represents the asynchronous operation. The task result is true if all batches were posted successfully; otherwise, false.
BuildingModelsPostTask.ExecuteAsync(IEnumerable<BuildingModel>, IEnumerable<int>, LongProgressWrapper, CancellationToken) Method
Asynchronously executes the task of posting building models to the database in memory-size-split batches, keyed by county identifier.
protected System.Threading.Tasks.Task<bool> ExecuteAsync(System.Collections.Generic.IEnumerable<DiGi.Analytical.Building.Classes.BuildingModel>? buildingModels, System.Collections.Generic.IEnumerable<int>? countyIds, DiGi.Core.Classes.LongProgressWrapper? longProgressWrapper, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));buildingModels System.Collections.Generic.IEnumerable<DiGi.Analytical.Building.Classes.BuildingModel>
The collection of DiGi.Analytical.Building.Classes.BuildingModel instances to post.
countyIds System.Collections.Generic.IEnumerable<System.Int32>
The identifiers of the county rows the building models belong to - normally every polygon part of one county.
longProgressWrapper DiGi.Core.Classes.LongProgressWrapper
A DiGi.Core.Classes.LongProgressWrapper tracking the progress of the operation.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<System.Boolean>
A task that represents the asynchronous operation. The task result is true if all batches were posted successfully; otherwise, false.
Serves the stored solar radiation of buildings (building_solar_radiation): a read open to every visitor, and a write that only a signed-in user can make.
A stored result is keyed by county part, building model id, neighbour radius and solver version. Its weather members describe the stored summary, not the key, so a client compares them with its own weather source and rebuilds the summary from the stored shading factors when they differ.
public class BuildingSolarRadiationController : DiGi.WebAPI.Classes.WebAPIControllerInheritance System.Object → Microsoft.AspNetCore.Mvc.ControllerBase → DiGi.WebAPI.Classes.WebAPIController → BuildingSolarRadiationController
BuildingSolarRadiationController(GISWebAPIConfigurationFileWatcher, BuildingSolarRadiationPostgreSQLConverter, Building2DPostgreSQLConverter, AdministrativeAreal2DPostgreSQLConverter, SecurityKeyManager, TokenRevocationStore) Constructor
Initializes a new instance of the BuildingSolarRadiationController class. This is the controller's only public constructor: MVC activates it through ActivatorUtilities, and a second one would answer every action with 500 (Coding - WebAPI Contracts.md §5).
public BuildingSolarRadiationController(DiGi.GIS.WebAPI.Classes.GISWebAPIConfigurationFileWatcher GISWebAPIConfigurationFileWatcher, DiGi.GIS.PostgreSQL.Classes.BuildingSolarRadiationPostgreSQLConverter buildingSolarRadiationPostgreSQLConverter, DiGi.GIS.PostgreSQL.Classes.Building2DPostgreSQLConverter building2DPostgreSQLConverter, DiGi.GIS.PostgreSQL.Classes.AdministrativeAreal2DPostgreSQLConverter administrativeAreal2DPostgreSQLConverter, DiGi.WebAPI.Classes.SecurityKeyManager? securityKeyManager=null, DiGi.WebAPI.Classes.TokenRevocationStore? tokenRevocationStore=null);GISWebAPIConfigurationFileWatcher GISWebAPIConfigurationFileWatcher
The configuration watcher holding AllowUpdateSolarRadiationData.
buildingSolarRadiationPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.BuildingSolarRadiationPostgreSQLConverter
The converter of the building_solar_radiation table (Storage database).
building2DPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.Building2DPostgreSQLConverter
The converter of the building_2d table (Main database), which decides the county part a write is filed under.
administrativeAreal2DPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.AdministrativeAreal2DPostgreSQLConverter
The converter of the administrative_areal_2d table (Main database), which widens that decision to the sibling parts of the county.
securityKeyManager DiGi.WebAPI.Classes.SecurityKeyManager
The user extension's security key manager; null when the user extension is not loaded, in which case every write is refused with 401.
tokenRevocationStore DiGi.WebAPI.Classes.TokenRevocationStore
The user extension's token revocation store; null when the user extension is not loaded, in which case every write is refused with 401.
BuildingSolarRadiationController.GetSolarRadiationByBuildingModelIdAsync(Nullable<long>, Nullable<int>, Nullable<double>, Nullable<int>, Nullable<bool>, CancellationToken) Method
Reads the stored solar radiation of a building model.
Open to every visitor, like the building model read the panel already uses. Every parameter is bound as nullable, and a missing one answers 400 rather than meaning default (Coding - WebAPI Contracts.md §2). The row is looked for under countyId and then under every county part, because a building of a multi-part county may be filed under a sibling part.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetSolarRadiationByBuildingModelIdAsync(System.Nullable<long> id, System.Nullable<int> countyId, System.Nullable<double> radius, System.Nullable<int> solverVersion, System.Nullable<bool> includeShadingFactors, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));id System.Nullable<System.Int64>
The id of the building model.
countyId System.Nullable<System.Int32>
The county part the building is filed under.
radius System.Nullable<System.Double>
The neighbour radius, in m, exactly as stored (the producer rounds it to 0.1 m); it is not rounded here.
solverVersion System.Nullable<System.Int32>
The solver version.
includeShadingFactors System.Nullable<System.Boolean>
True to include every surface's shading factors (8 760 bytes each, base64); omitted or false leaves them null, which is all a client needs when the stored summary matches its weather source.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation. 200 with the DiGi.GIS.Classes.BuildingSolarRadiationResult, 204 when nothing is stored for the key, 400 for a missing or invalid parameter, 503 for a transient database failure, or 500.
Stores the solar radiation of a building on behalf of the signed-in visitor, replacing the result stored for the same key.
The bearer token identifies the user, as for yearbuiltdata/setuseryearbuilt, and AllowUpdateSolarRadiationData gates the write; each refusal is logged distinctly so the cause of a 4xx is recoverable where the status is shared. The server stamps DiGi.GIS.Classes.BuildingSolarRadiationResult.UserEmail from the token, ignoring any value in the body, and sets DiGi.GIS.Classes.BuildingSolarRadiationResult.CreatedAt to now.
The body is the DiGi JSON of a DiGi.GIS.Classes.BuildingSolarRadiationResult (ToJsonObject(), with _type), bound as a System.Text.Json.Nodes.JsonObject so the host's System.Text.Json formatter never sees the DiGi layout. The county part is resolved from the body's reference through building_2d, widened to the sibling parts of the body's CountyId; the body's part is only the candidate (Coding - GIS Administrative Data.md).
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> SetSolarRadiationAsync(System.Text.Json.Nodes.JsonObject? jsonObject, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));jsonObject System.Text.Json.Nodes.JsonObject
The result to store.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation. 200 with the id of the stored row; 401 without a valid user token; 400 for a disabled flag or an invalid body; 404 when no part of the county holds the reference; 503 for a transient database failure; or 500 when the write failed.
Provides functionality to handle the asynchronous posting of DiGi.CityGML.Classes.Building collections to the PostgreSQL database.
public class BuildingsPostTask : DiGi.GIS.WebAPI.Classes.SerializableObjectsPostTask<DiGi.CityGML.Classes.Building>Inheritance System.Object → DiGi.Core.Classes.BackgroundTask → DiGi.Core.Classes.CancelableBackgroundTask → DiGi.Core.Classes.ReportableBackgroundTask<System.Int64> → DiGi.GIS.WebAPI.Classes.SerializableObjectsPostTask<DiGi.CityGML.Classes.Building> → BuildingsPostTask
Initializes a new instance of the BuildingsPostTask class.
public BuildingsPostTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager GISWebAPIManager);GISWebAPIManager GISWebAPIManager
The GIS PostgreSQL Web API manager used to handle data persistence.
Gets or sets the code associated with the buildings post task.
A code does not identify a single county row - a multi-part county holds one row per polygon part - so set CountyId instead wherever the identifier is already known. CountyId takes precedence when both are set.
public string? Code { get; set; }Gets or sets the identifier of the county row the buildings belong to. When set it is used in preference to Code, which leaves the server to choose between the rows of a multi-part county.
public System.Nullable<int> CountyId { get; set; }BuildingsPostTask.ExecuteAsync(IEnumerable<Building>, int, LongProgressWrapper, CancellationToken) Method
Asynchronously executes the task of posting building objects to the database, keyed by county identifier.
protected System.Threading.Tasks.Task<bool> ExecuteAsync(System.Collections.Generic.IEnumerable<DiGi.CityGML.Classes.Building>? values, int countyId, DiGi.Core.Classes.LongProgressWrapper? longProgressWrapper, System.Threading.CancellationToken cancellationToken);values System.Collections.Generic.IEnumerable<DiGi.CityGML.Classes.Building>
The collection of DiGi.CityGML.Classes.Building instances to post.
countyId System.Int32
The identifier of the county row the buildings belong to.
longProgressWrapper DiGi.Core.Classes.LongProgressWrapper
A DiGi.Core.Classes.LongProgressWrapper tracking the progress of the operation.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe for cancellation requests.
System.Threading.Tasks.Task<System.Boolean>
A task that represents the asynchronous operation. The task result is true if all batches were posted successfully; otherwise, false.
BuildingsPostTask.ExecuteAsync(IEnumerable<Building>, string, LongProgressWrapper, CancellationToken) Method
Asynchronously executes the task of posting building objects to the database.
protected System.Threading.Tasks.Task<bool> ExecuteAsync(System.Collections.Generic.IEnumerable<DiGi.CityGML.Classes.Building>? values, string? code, DiGi.Core.Classes.LongProgressWrapper? longProgressWrapper, System.Threading.CancellationToken cancellationToken);values System.Collections.Generic.IEnumerable<DiGi.CityGML.Classes.Building>
code System.String
longProgressWrapper DiGi.Core.Classes.LongProgressWrapper
cancellationToken System.Threading.CancellationToken
System.Threading.Tasks.Task<System.Boolean>
Represents a parameter containing categories for querying columns.
public class ColumnsByCategoriesParameter : DiGi.WebAPI.Classes.ParameterInheritance System.Object → DiGi.Core.Classes.Object → DiGi.Core.Classes.SerializableObject → DiGi.WebAPI.Classes.Parameter → ColumnsByCategoriesParameter
Initializes a new instance of the ColumnsByCategoriesParameter class.
public ColumnsByCategoriesParameter();Initializes a new instance of the ColumnsByCategoriesParameter class with the specified categories.
public ColumnsByCategoriesParameter(System.Collections.Generic.IEnumerable<string> categories);categories System.Collections.Generic.IEnumerable<System.String>
The collection of categories for querying columns.
Initializes a new instance of the ColumnsByCategoriesParameter class using an System.Text.Json.Nodes.JsonObject object.
public ColumnsByCategoriesParameter(System.Text.Json.Nodes.JsonObject jsonObject);jsonObject System.Text.Json.Nodes.JsonObject
The System.Text.Json.Nodes.JsonObject containing the data used to initialize the parameter.
Gets or sets the categories for querying columns. All columns will be returned if the collection is null or empty.
public System.Collections.Generic.IEnumerable<string> Categories { get; set; }System.Collections.Generic.IEnumerable<System.String>
Represents a parameter object used to perform counting operations based on a collection of administrative areal 2D identifiers.
public class CountByAdministrativeAreal2DIdsParameter : DiGi.WebAPI.Classes.ParameterInheritance System.Object → DiGi.Core.Classes.Object → DiGi.Core.Classes.SerializableObject → DiGi.WebAPI.Classes.Parameter → CountByAdministrativeAreal2DIdsParameter
Initializes a new instance of the CountByAdministrativeAreal2DIdsParameter class.
public CountByAdministrativeAreal2DIdsParameter();Initializes a new instance of the CountByAdministrativeAreal2DIdsParameter class by copying the values from an existing instance.
public CountByAdministrativeAreal2DIdsParameter(DiGi.GIS.WebAPI.Classes.CountByAdministrativeAreal2DIdsParameter countByAdministrativeAreal2DIdsParameter);countByAdministrativeAreal2DIdsParameter CountByAdministrativeAreal2DIdsParameter
The source instance from which to copy the administrative areal 2D identifiers.
Initializes a new instance of the CountByAdministrativeAreal2DIdsParameter class using the provided JSON object.
public CountByAdministrativeAreal2DIdsParameter(System.Text.Json.Nodes.JsonObject jsonObject);jsonObject System.Text.Json.Nodes.JsonObject
The System.Text.Json.Nodes.JsonObject containing the data used to initialize the parameter.
Gets or sets the collection of administrative areal 2D identifiers used for counting operations.
public System.Collections.Generic.IEnumerable<int> AdministrativeAreal2DIds { get; set; }System.Collections.Generic.IEnumerable<System.Int32>
Controller responsible for handling API requests related to EPW files retrieved from or updated in a PostgreSQL database.
public class EPWFileController : DiGi.WebAPI.Classes.WebAPIControllerInheritance System.Object → Microsoft.AspNetCore.Mvc.ControllerBase → DiGi.WebAPI.Classes.WebAPIController → EPWFileController
Initializes a new instance of the EPWFileController class.
public EPWFileController(DiGi.GIS.WebAPI.Classes.GISWebAPIConfigurationFileWatcher GISWebAPIConfigurationFileWatcher, DiGi.GIS.PostgreSQL.Classes.EPWFilePostgreSQLConverter ePWFilePostgreSQLConverter);GISWebAPIConfigurationFileWatcher GISWebAPIConfigurationFileWatcher
The configuration file watcher used to monitor changes to the GIS PostgreSQL Web API settings.
ePWFilePostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.EPWFilePostgreSQLConverter
The converter used for handling EPW file operations within the PostgreSQL database.
Asynchronously retrieves the closest EPWFile to the given coordinate (x, y).
The response header DiGi-EPWFile-Id (EPWFileId) carries the id of the epw_file row the body holds, as an invariant integer, so a client can name the weather source of a stored solar radiation summary. The body is unchanged.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetEPWFileAsync(double x, double y, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));The X coordinate (longitude).
The Y coordinate (latitude).
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by the caller to cancel the asynchronous operation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Asynchronously updates or inserts a collection of EPW files.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> UpdateItemsAsync(System.Text.Json.Nodes.JsonArray? jsonArray, string? key=null, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));jsonArray System.Text.Json.Nodes.JsonArray
The JSON array containing the EPW files to update or insert.
key System.String
The secret access key supplied in the request header.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by the caller to cancel the asynchronous operation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
A task that represents the asynchronous operation.
Provides functionality to handle the asynchronous posting of multiple DiGi.EPW.Classes.EPWFile objects to the GIS PostgreSQL database.
public class EPWFilesPostTask : DiGi.GIS.WebAPI.Classes.SerializableObjectsPostTask<DiGi.EPW.Classes.EPWFile>Inheritance System.Object → DiGi.Core.Classes.BackgroundTask → DiGi.Core.Classes.CancelableBackgroundTask → DiGi.Core.Classes.ReportableBackgroundTask<System.Int64> → DiGi.GIS.WebAPI.Classes.SerializableObjectsPostTask<DiGi.EPW.Classes.EPWFile> → EPWFilesPostTask
Initializes a new instance of the EPWFilesPostTask class.
public EPWFilesPostTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager GISWebAPIManager);GISWebAPIManager GISWebAPIManager
The GISWebAPIManager used to manage PostgreSQL GIS operations.
Asynchronously executes the posting of EPW files.
protected System.Threading.Tasks.Task<bool> ExecuteAsync(System.Collections.Generic.IEnumerable<DiGi.EPW.Classes.EPWFile>? ePWFiles, DiGi.Core.Classes.LongProgressWrapper? longProgressWrapper, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));ePWFiles System.Collections.Generic.IEnumerable<DiGi.EPW.Classes.EPWFile>
The collection of EPW files to post.
longProgressWrapper DiGi.Core.Classes.LongProgressWrapper
The progress wrapper to track the number of posted files.
cancellationToken System.Threading.CancellationToken
The cancellation token to cancel the operation.
System.Threading.Tasks.Task<System.Boolean>
A task that represents the asynchronous operation, returning true if the post succeeded; otherwise, false.
Asynchronously executes the background task, reporting progress.
protected override System.Threading.Tasks.Task<bool> ExecuteAsync(System.IProgress<long> progress, System.Threading.CancellationToken cancellationToken);progress System.IProgress<System.Int64>
The progress reporter for reporting progress updates.
cancellationToken System.Threading.CancellationToken
The cancellation token to cancel the operation.
System.Threading.Tasks.Task<System.Boolean>
A task that represents the asynchronous operation, returning true if the operation succeeded; otherwise, false.
Provides functionality to watch and retrieve configuration settings for the GIS PostgreSQL Web API from a specified configuration file.
public class GISWebAPIConfigurationFileWatcher : DiGi.Core.IO.FileWatcher.Classes.ConfigurationFileWatcherInheritance System.Object → DiGi.Core.IO.FileWatcher.Classes.FileWatcher → DiGi.Core.IO.FileWatcher.Classes.ConfigurationFileWatcher → GISWebAPIConfigurationFileWatcher
Initializes a new instance of the GISWebAPIConfigurationFileWatcher class.
public GISWebAPIConfigurationFileWatcher(string path, double interval=5000.0);path System.String
The path to the configuration file to be watched.
interval System.Double
The time interval in milliseconds between checks for changes to the configuration file.
Gets a value indicating whether stored year built data may be deleted - whole objects, one prediction run, or user entries withdrawn by moderation.
Kept apart from AllowUpdateYearBuiltData because a delete has no undo: a host can accept new predictions and user entries while refusing removals. A missing value denies.
public bool AllowDeleteYearBuiltData { get; }Gets a value indicating whether updates to PRG address points are permitted according to the configuration file.
public bool AllowUpdateAddressPoint { get; }Gets a value indicating whether updates to administrative areal 2D data are permitted according to the configuration file.
public bool AllowUpdateAdministrativeAreal2D { get; }Gets a value indicating whether updates to buildings are permitted based on the configuration file settings.
public bool AllowUpdateBuilding { get; }Gets a value indicating whether updates to 2D buildings are permitted based on the configuration file settings.
public bool AllowUpdateBuilding2D { get; }Gets a value indicating whether updates to building data are permitted based on the configuration file settings.
public bool AllowUpdateBuildingData { get; }Gets a value indicating whether updates to building models are permitted based on the configuration file settings.
public bool AllowUpdateBuildingModel { get; }Gets a value indicating whether updating EPW file data is enabled in the configuration.
public bool AllowUpdateEPWFile { get; }Gets a value indicating whether updates to occupancy data are permitted according to the configuration file.
public bool AllowUpdateOccupancyData { get; }Gets a value indicating whether updates to orthophoto data are permitted according to the configuration file.
public bool AllowUpdateOrtoDatas { get; }Gets a value indicating whether signed-in users may store the solar radiation of a building (gis/buildingsolarradiation/setsolarradiation).
The write is authorized by the user's bearer token, not by the access key, so this flag is the host's only switch for it. A missing value denies.
public bool AllowUpdateSolarRadiationData { get; }Gets a value indicating whether updates to territorial unit data are permitted according to the configuration file.
public bool AllowUpdateUnit { get; }Gets a value indicating whether updating year built data is enabled in the configuration.
public bool AllowUpdateYearBuiltData { get; }Gets a value indicating whether write authorization enforcement is enabled.
False denies every write request; it does not open them.
public bool Enabled { get; }Gets the secret access token for authorizing write operations, or the value of the DIGI_GIS_WEBAPI_KEY environment variable if not configured in the file.
public string? Key { get; }Gets a value indicating whether the key check is explicitly waived, leaving write endpoints reachable without an access key.
Intended for local development only. This is the sole setting that grants unauthenticated access to write endpoints.
public bool Open { get; }Manages the creation and lifecycle of System.Net.Http.HttpClient instances used to interact with the GIS PostgreSQL Web API.
public class GISWebAPIManagerInheritance System.Object → GISWebAPIManager
Initializes a new instance of the GISWebAPIManager class.
public GISWebAPIManager(System.Net.Http.IHttpClientFactory? httpClientFactory, string? key=null);httpClientFactory System.Net.Http.IHttpClientFactory
The HTTP client factory used to create and manage System.Net.Http.HttpClient instances.
key System.String
The optional API authorization key used for authenticating requests to protected endpoints.
Gets or sets the API authorization key used for authenticating requests to protected endpoints.
public string? Key { get; set; }Creates an HttpClient instance with the specified name.
public System.Net.Http.HttpClient? CreateHttpClient(string name);name System.String
The unique identifier or name of the HTTP client to be created.
System.Net.Http.HttpClient
An System.Net.Http.HttpClient instance configured with the specified client name and authorization key header if configured.
Creates an System.Net.Http.HttpClient instance configured for the Web API, resolving the route associated with the specified controller type.
public System.Net.Http.HttpClient? CreateHttpClient<TControllerBase>(out string? route)
where TControllerBase : Microsoft.AspNetCore.Mvc.ControllerBase;TControllerBase
The TControllerBase type parameter.
route System.String
The route.
System.Net.Http.HttpClient
A task that represents the asynchronous operation.
Creates an System.Net.Http.HttpClient instance configured for the specified controller's method and retrieves the corresponding API path.
public System.Net.Http.HttpClient? CreateHttpClient<TControllerBase>(string methodName, out string? path)
where TControllerBase : Microsoft.AspNetCore.Mvc.ControllerBase;TControllerBase
The type of the base controller used to resolve the endpoint path.
methodName System.String
The name of the method within the controller to resolve.
path System.String
The path.
System.Net.Http.HttpClient
A task that represents the asynchronous operation.
Controller responsible for handling API requests related to heat transfer coefficients, providing access to regulated heat transfer coefficient data.
public class HeatTransferCoefficientController : DiGi.WebAPI.Classes.WebAPIControllerInheritance System.Object → Microsoft.AspNetCore.Mvc.ControllerBase → DiGi.WebAPI.Classes.WebAPIController → HeatTransferCoefficientController
Initializes a new instance of the HeatTransferCoefficientController class.
public HeatTransferCoefficientController();HeatTransferCoefficientController.GetRegulatedHeatTransferCoefficientsByYearAsync(short, CancellationToken) Method
Retrieves the regulated heat transfer coefficients for a specified year.
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult> GetRegulatedHeatTransferCoefficientsByYearAsync(short year, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));year System.Int16
The year used to filter the regulated heat transfer coefficients.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used by the caller to cancel the asynchronous operation.
System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.IActionResult>
An Microsoft.AspNetCore.Mvc.IActionResult representing the result of the request, containing the retrieved coefficients or an error status.
Parameter class containing options for generating histograms.
public class HistogramRequestParameter : DiGi.WebAPI.Classes.ParameterInheritance System.Object → DiGi.Core.Classes.Object → DiGi.Core.Classes.SerializableObject → DiGi.WebAPI.Classes.Parameter → HistogramRequestParameter
Initializes a new instance of the HistogramRequestParameter class.
public HistogramRequestParameter();Initializes a new instance of the HistogramRequestParameter class using an System.Text.Json.Nodes.JsonObject object.
public HistogramRequestParameter(System.Text.Json.Nodes.JsonObject jsonObject);jsonObject System.Text.Json.Nodes.JsonObject
The JSON object containing data used to initialize the parameter.
Gets or sets the total number of histogram buckets. Defaults to 10.
Capped because the bucket count is width_bucket's divisor rather than a page size: the server builds and returns one row per bucket whatever the table holds, so an unbounded value turns a cheap aggregate into an arbitrarily large response.
public int BucketCount { get; set; }20
Gets or sets the column unique identifier to calculate value distributions for.
public string ColumnUniqueId { get; set; }"column_unique_id_123"
Gets or sets the target partition identifier (County ID). If null, histogram is generated across all partitions.
public System.Nullable<int> CountyId { get; set; }10365
Gets or sets the optional dynamic hierarchical filters to apply prior to generating the histogram.
public DiGi.PostgreSQL.Table.Classes.FilterGroup? FilterGroup { get; set; }DiGi.PostgreSQL.Table.Classes.FilterGroup
Gets or sets the bucketing rule. Defaults to DiGi.PostgreSQL.Table.Enums.HistogramBucketing.EqualWidth (width_bucket over the scope's [min, max], the maximum in the overflow bucket BucketCount + 1); DiGi.PostgreSQL.Table.Enums.HistogramBucketing.EqualCount (ntile) gives every bucket the same number of rows, so a skewed column keeps its resolution where its rows are - what a consumer placing quantiles needs (DiGi-Organization/DiGi.PostgreSQL#7).
Sent as the integer value; an omitted property keeps equal width, so clients written against the earlier contract are unaffected.
public DiGi.PostgreSQL.Table.Enums.HistogramBucketing HistogramBucketing { get; set; }DiGi.PostgreSQL.Table.Enums.HistogramBucketing
1
Declares the smallest value a numeric action parameter may carry, without the ceiling a System.ComponentModel.DataAnnotations.RangeAttribute would force into the served document.
Applied to a query parameter it is enforced by MVC model validation, so [ApiController] answers a violation with HTTP 400 before the action runs - the same rejection the action's own guard already produced, now at binding (DiGi-Organization/DiGi.GIS.WebAPI#47). A null value passes, so an optional parameter (an int? county filter) keeps its "omitted means no filter" meaning; a mandatory one is refused by [BindRequired], not here.
A floor states the guard it mirrors exactly: 0 for commandTimeout < 0, 1 for countyId <= 0, so the attribute never rejects a value the action accepts nor accepts one it rejects. A non-numeric or System.Double.NaN value is refused, matching the actions' own finiteness guards.
ParameterMinimumSchemaFilter carries the same floor into the parameter's OpenAPI schema as minimum - and as exclusiveMinimum when Exclusive is set - so the document states the domain without the absurd maximum a [Range(min, double.MaxValue)] would emit.
public sealed class MinimumAttribute : System.ComponentModel.DataAnnotations.ValidationAttributeInheritance System.Object → System.Attribute → System.ComponentModel.DataAnnotations.ValidationAttribute → MinimumAttribute
Initializes a new instance of the MinimumAttribute class with an inclusive floor.
public MinimumAttribute(double minimum);minimum System.Double
The smallest value the parameter may carry.
Whether the floor itself is excluded, for a domain that is strictly greater than the floor rather than at least it.
public bool Exclusive { get; set; }The smallest value the parameter may carry, inclusive unless Exclusive is set.
public double Minimum { get; }Determines whether the bound value lies at or above the floor, or strictly above it when Exclusive is set.
protected override System.ComponentModel.DataAnnotations.ValidationResult? IsValid(object? value, System.ComponentModel.DataAnnotations.ValidationContext validationContext);value System.Object
The bound value; null (an omitted optional parameter) is always valid.
validationContext System.ComponentModel.DataAnnotations.ValidationContext
The context describing the parameter being validated.
System.ComponentModel.DataAnnotations.ValidationResult
System.ComponentModel.DataAnnotations.ValidationResult.Success when the value lies inside the domain; otherwise a result naming the floor.
Parameter class containing options for multi-value database aggregation queries.
public class MultivalueAggregateRequestParameter : DiGi.WebAPI.Classes.ParameterInheritance System.Object → DiGi.Core.Classes.Object → DiGi.Core.Classes.SerializableObject → DiGi.WebAPI.Classes.Parameter → MultivalueAggregateRequestParameter
Initializes a new instance of the MultivalueAggregateRequestParameter class.
public MultivalueAggregateRequestParameter();Initializes a new instance of the MultivalueAggregateRequestParameter class using a System.Text.Json.Nodes.JsonObject object.
public MultivalueAggregateRequestParameter(System.Text.Json.Nodes.JsonObject jsonObject);jsonObject System.Text.Json.Nodes.JsonObject
The JSON object containing data used to initialize the parameter.
Gets or sets the column unique identifier to calculate statistics for.
public string ColumnUniqueId { get; set; }"col_unique_id_123"
Gets or sets the target partition identifier (County ID). If null, aggregation is performed across all partitions.
public System.Nullable<int> CountyId { get; set; }10365
Gets or sets the optional dynamic hierarchical filters to apply prior to aggregation.
public DiGi.PostgreSQL.Table.Classes.FilterGroup? FilterGroup { get; set; }