Repository navigation
DiGi.GIS.PostgreSQL.UI.Classes
Represents a configuration file specifically for the GIS PostgreSQL converter manager settings, extending the base configuration file functionality.
public class GISPostgreSQLConverterManagerConfigurationFile : DiGi.Core.Classes.ConfigurationFile, DiGi.GIS.PostgreSQL.UI.Interfaces.IGISPostgreSQLUIObjectInheritance System.Object → DiGi.Core.Classes.Object → DiGi.Core.Classes.SerializableObject → DiGi.Core.Classes.ConfigurationFile → GISPostgreSQLConverterManagerConfigurationFile
Implements IGISPostgreSQLUIObject
Initializes a new empty instance of the GISPostgreSQLConverterManagerConfigurationFile class.
public GISPostgreSQLConverterManagerConfigurationFile();Initializes a new instance of the GISPostgreSQLConverterManagerConfigurationFile class by copying settings from another DiGi.Core.Classes.ConfigurationFile.
public GISPostgreSQLConverterManagerConfigurationFile(DiGi.Core.Classes.ConfigurationFile? configurationFile);configurationFile DiGi.Core.Classes.ConfigurationFile
The source configuration file to copy settings from.
Initializes a new instance of the GISPostgreSQLConverterManagerConfigurationFile class from a System.Text.Json.Nodes.JsonObject.
public GISPostgreSQLConverterManagerConfigurationFile(System.Text.Json.Nodes.JsonObject? jsonObject);jsonObject System.Text.Json.Nodes.JsonObject
The JSON object containing the configuration data.
Gets or sets the API authorization key used for authenticating requests to protected Web API endpoints.
public string? Key { get; set; }Provides the application context for the GIS PostgreSQL tray application, managing its lifecycle and dependencies.
public class GISPostgreSQLTrayApplicationContext : DiGi.UI.Windows.Classes.TrayApplicationContext<DiGi.GIS.PostgreSQL.UI.Windows.MainWindow>Inheritance System.Windows.Forms.ApplicationContext → DiGi.UI.Windows.Classes.TrayApplicationContext<MainWindow> → GISPostgreSQLTrayApplicationContext
Initializes a new instance of the GISPostgreSQLTrayApplicationContext class.
public GISPostgreSQLTrayApplicationContext();Creates and returns the main window associated with this application context.
protected override DiGi.GIS.PostgreSQL.UI.Windows.MainWindow GetWindow();MainWindow
An instance of the MainWindow class.
Removes the DiGi.Analytical.Building.Classes.BuildingModel rows whose building no longer exists under the county part holding them.
An orphan is a model held under a part whose building_2d no longer holds the building it describes, which is what a county part repair run can leave behind when it re-files a building under the part its footprint lies in.
Reports by default and writes nothing.DryRun has to be turned off deliberately, and the counts it reports first are what the delete should be reviewed against - the rows removed here have no undo.
The report is written as files into ReportDirectory as well as to the log: BuildingModels_Cleanup.csv naming every orphaned reference, and BuildingModels_Cleanup_Summary.txt carrying the totals. The files are what the decision to delete should rest on - a log is shared with whatever else the application is doing and rolls by day.
public class PostgreSQLBuildingModelCleanupTask : DiGi.Core.Classes.ReportableBackgroundTask<long>, DiGi.GIS.PostgreSQL.UI.Interfaces.IGISPostgreSQLUIObjectInheritance System.Object → DiGi.Core.Classes.BackgroundTask → DiGi.Core.Classes.CancelableBackgroundTask → DiGi.Core.Classes.ReportableBackgroundTask<System.Int64> → PostgreSQLBuildingModelCleanupTask
Implements IGISPostgreSQLUIObject
Initializes a new instance of the PostgreSQLBuildingModelCleanupTask class.
public PostgreSQLBuildingModelCleanupTask(DiGi.GIS.PostgreSQL.Classes.GISPostgreSQLConverterManager gISPostgreSQLConverterManager);gISPostgreSQLConverterManager DiGi.GIS.PostgreSQL.Classes.GISPostgreSQLConverterManager
The manager holding the PostgreSQL converters.
Gets or sets the identifiers of the county rows to clean. When null every county row is examined.
These are polygon parts, not counties - a multi-part county holds one row per part and each is cleaned on its own.
public System.Collections.Generic.IEnumerable<int>? CountyIds { get; set; }System.Collections.Generic.IEnumerable<System.Int32>
Gets or sets a value indicating whether the task only reports what it would do. Defaults to true; nothing is written until it is turned off.
public bool DryRun { get; set; }Gets or sets the directory the two report files are written into. When null the directory the application was launched from is used.
Deliberately not a folder dialog: this runs on a thread pool thread, where a WPF common dialog needs an STA apartment and throws instead of opening.
public string? ReportDirectory { get; set; }Gets or sets the two-digit voivodeship codes to be cleaned. A county row is in scope when its code starts with one of them. When null every voivodeship is cleaned. Combined with CountyIds both filters have to admit the row.
This is what makes the national regeneration affordable: a voivodeship is regenerated and then cleaned before the next one starts, so the storage tablespace only ever carries a second copy of one voivodeship rather than of the whole country.
public System.Collections.Generic.IEnumerable<string>? VoivodeshipCodes { get; set; }System.Collections.Generic.IEnumerable<System.String>
PostgreSQLBuildingModelCleanupTask.ReferencesOrphanedAsync(BuildingModelPostgreSQLConverter, Building2DPostgreSQLConverter, int, CancellationToken) Method
Returns the references a county row holds a model for but no longer holds a building for.
private static System.Threading.Tasks.Task<System.Collections.Generic.List<string>> ReferencesOrphanedAsync(DiGi.GIS.PostgreSQL.Classes.BuildingModelPostgreSQLConverter buildingModelPostgreSQLConverter, DiGi.GIS.PostgreSQL.Classes.Building2DPostgreSQLConverter building2DPostgreSQLConverter, int countyId, System.Threading.CancellationToken cancellationToken);buildingModelPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.BuildingModelPostgreSQLConverter
The converter reading the model table.
building2DPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.Building2DPostgreSQLConverter
The converter reading the building table, which lives in a different database.
countyId System.Int32
The identifier of the county row to compare.
cancellationToken System.Threading.CancellationToken
The System.Threading.CancellationToken to observe while waiting for the task to complete.
System.Threading.Tasks.Task<System.Collections.Generic.List<System.String>>
A task that represents the asynchronous operation. The task result contains the orphaned references, empty when either side could not be read.
Provides functionality to post administrative areal 2D objects to a PostgreSQL database by selecting GIS model files through the user interface.
public class UIAdministrativeAreal2DFromFilePostTask : DiGi.GIS.WebAPI.Classes.AdministrativeAreal2DsPostTask, DiGi.GIS.PostgreSQL.UI.Interfaces.IGISPostgreSQLUIObjectInheritance 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> → DiGi.GIS.WebAPI.Classes.AdministrativeAreal2DsPostTask → UIAdministrativeAreal2DFromFilePostTask
Implements IGISPostgreSQLUIObject
Initializes a new instance of the UIAdministrativeAreal2DFromFilePostTask class.
public UIAdministrativeAreal2DFromFilePostTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager GISWebAPIManager);GISWebAPIManager DiGi.GIS.WebAPI.Classes.GISWebAPIManager
The manager used to communicate with the GIS PostgreSQL Web API.
Concrete implementation of the background work.
protected override System.Threading.Tasks.Task<bool> ExecuteAsync(System.IProgress<long> progress, System.Threading.CancellationToken cancellationToken);progress System.IProgress<System.Int64>
The provider for a value and elapsed time to report progress.
cancellationToken System.Threading.CancellationToken
The cancellation token to observe while waiting for the task to complete.
System.Threading.Tasks.Task<System.Boolean>
A task that represents the asynchronous operation. The task result is true if the operation succeeded; otherwise, false.
Represents a task for posting Building 2D objects to a PostgreSQL database from GIS model files selected through the user interface.
public class UIBuilding2DsFromFilePostTask : DiGi.GIS.WebAPI.Classes.Building2DsPostTask, DiGi.GIS.PostgreSQL.UI.Interfaces.IGISPostgreSQLUIObjectInheritance 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> → DiGi.GIS.WebAPI.Classes.Building2DsPostTask → UIBuilding2DsFromFilePostTask
Implements IGISPostgreSQLUIObject
Initializes a new instance of the UIBuilding2DsFromFilePostTask class.
public UIBuilding2DsFromFilePostTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager GISWebAPIManager);GISWebAPIManager DiGi.GIS.WebAPI.Classes.GISWebAPIManager
The manager used to communicate with the GIS PostgreSQL Web API.
Concrete implementation of the background work.
protected override System.Threading.Tasks.Task<bool> ExecuteAsync(System.IProgress<long> progress, System.Threading.CancellationToken cancellationToken);progress System.IProgress<System.Int64>
The provider for reporting progress of the operation.
cancellationToken System.Threading.CancellationToken
The token to monitor for cancellation requests.
System.Threading.Tasks.Task<System.Boolean>
A task that represents the asynchronous operation. The task result is true if the operation succeeded; otherwise, false.
A post task that generates DiGi.Analytical.Building.Classes.BuildingModel instances entirely from data already held on the server - the CityGML DiGi.CityGML.Classes.Building records stored in the database are used instead of CityGML archives read from a local directory.
For every county in scope the task pages through the county's DiGi.GIS.PostgreSQL.Classes.Building2DReference records and, per page, downloads the DiGi.GIS.Classes.Building2D data, so a whole county's buildings are never held in memory at once.
Each DiGi.GIS.Classes.Building2D is then processed individually: its single best ranked CityGML DiGi.CityGML.Classes.Building is pulled by reference through DiGi.GIS.WebAPI.Classes.BuildingController.GetItemByReferenceAsync(System.String,System.Nullable{System.Int32},System.Nullable{System.Double},System.Nullable{System.Double},System.Nullable{System.Double},System.Nullable{System.Double},System.Threading.CancellationToken) and refined into storeys by the matching Analytical.Create.BuildingModel overload. A 2D building whose reference has no stored CityGML building, no reference at all, or whose pull fails is modelled from an extruded footprint instead.
"County" here means one polygon part. The county listing returns 406 references for 380 codes, because a county whose territory is disconnected is stored as one row per part. The task reads and uploads by Id, so each part is filled from its own building_2d rows; uploading by Code instead would let the server file every part's models under a single one, which is what left three counties reading back empty. The county code is still written onto each model as descriptive metadata.
Because building_2d holds the same building under every part it was imported under, a building shared by two parts is modelled once per part. That is inherent to keying by part and is not a duplicate to suppress here - it mirrors the underlying table.
A national pass takes days, so a county is the unit of both failure and progress. A county whose pages cannot be read or uploaded is named, recorded in BuildingModels_Regeneration_Failed.txt and skipped, rather than ending the run and discarding every county after it. A county that completes in full is appended to BuildingModels_Regeneration_Checkpoint.txt, which Resume reads on the next run - so an interrupted pass continues where it stopped, and a county interrupted part way is simply redone.
public class UIBuildingModelsFromDatabasePostTask : DiGi.GIS.WebAPI.Classes.BuildingModelsPostTask, DiGi.GIS.PostgreSQL.UI.Interfaces.IGISPostgreSQLUIObjectInheritance 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> → DiGi.GIS.WebAPI.Classes.BuildingModelsPostTask → UIBuildingModelsFromDatabasePostTask
Implements IGISPostgreSQLUIObject
Initializes a new instance of the UIBuildingModelsFromDatabasePostTask class.
public UIBuildingModelsFromDatabasePostTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager GISWebAPIManager);GISWebAPIManager DiGi.GIS.WebAPI.Classes.GISWebAPIManager
The DiGi.GIS.WebAPI.Classes.GISWebAPIManager instance used to communicate with the server.
Gets or sets the identifiers of the counties to be processed. When null every county held on the server is processed.
public System.Collections.Generic.IEnumerable<int>? CountyIds { get; set; }System.Collections.Generic.IEnumerable<System.Int32>
Gets or sets how many CityGML and terrain requests are allowed to be in flight at once.
One CityGML request per building at roughly 60 ms each makes a national pass a matter of weeks when they are issued one after another. The requests are independent, so they are issued in groups of this size. Lower it if the server or the terrain service starts refusing.
public int MaxConcurrentRequests { get; set; }Gets or sets the number of DiGi.GIS.PostgreSQL.Classes.Building2DReference items requested per page while downloading a county's buildings.
public int PageSize { get; set; }Gets or sets the directory the checkpoint and the list of failed counties are written into. When null the directory the application was launched from is used.
Deliberately not a folder dialog: this runs on a thread pool thread, where a WPF common dialog needs an STA apartment and throws instead of opening.
public string? ReportDirectory { get; set; }Gets or sets a value indicating whether counties named in the checkpoint of an earlier run are skipped. Defaults to true.
A national pass is a matter of days, so it has to survive being interrupted. Turning this off starts from the first county in scope and truncates the checkpoint, which is what a deliberate re-run of an already-completed scope needs.
public bool Resume { get; set; }Gets or sets the two-digit voivodeship codes to be processed. A county is in scope when its code starts with one of them. When null every voivodeship is processed. Combined with CountyIds both filters have to admit the county.
Regenerating one voivodeship at a time is what keeps the storage tablespace within reach: a county's models are written beside the ones they supersede until PostgreSQLBuildingModelCleanupTask removes them, so a national pass in one go would need room for a second copy of the whole table.
public System.Collections.Generic.IEnumerable<string>? VoivodeshipCodes { get; set; }System.Collections.Generic.IEnumerable<System.String>
A UI-driven post task that prompts the user to select a directory containing CityGML archives, enumerates the counties held on the server, and for every county whose code matches a CityGML archive in that directory downloads the county's DiGi.GIS.Classes.Building2D data page by page, generates DiGi.Analytical.Building.Classes.BuildingModel instances and uploads them.
Both the CityGML archives and the Building2D data are processed one county - and within a county one page - at a time, so neither the whole country's CityGML nor a whole county's buildings are ever held in memory at once.
public class UIBuildingModelsFromDirectoryPostTask : DiGi.GIS.WebAPI.Classes.BuildingModelsPostTask, DiGi.GIS.PostgreSQL.UI.Interfaces.IGISPostgreSQLUIObjectInheritance 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> → DiGi.GIS.WebAPI.Classes.BuildingModelsPostTask → UIBuildingModelsFromDirectoryPostTask
Implements IGISPostgreSQLUIObject
Initializes a new instance of the UIBuildingModelsFromDirectoryPostTask class.
public UIBuildingModelsFromDirectoryPostTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager GISWebAPIManager);GISWebAPIManager DiGi.GIS.WebAPI.Classes.GISWebAPIManager
The DiGi.GIS.WebAPI.Classes.GISWebAPIManager instance used to communicate with the server.
Gets or sets the number of DiGi.GIS.PostgreSQL.Classes.Building2DReference items requested per page while downloading a county's buildings.
public int PageSize { get; set; }A UI-driven task that reads the DiGi.Analytical.Building.Classes.BuildingModel records already stored on the server and reports how complete and how sound they are.
Read-only. Nothing is uploaded, nothing is repaired - the task exists to say what the stored data looks like, which is the state the upload path itself never reported: a model whose spaces are not enclosed is accepted by the server today and stored without a word.
For every county in scope a sample of SampleSize 2D building references is drawn with RandomSeed, so a run is reproducible and two runs can be compared. The models behind those references are pulled in batches and each one is passed through Analytical.Create.BuildingModelValidationResult. A reference the server holds no model for is recorded as missing, which is the completeness half of the answer.
The seed is combined with the county row identifier rather than shared across counties, so a county draws the same sample whether it is verified on its own, with its voivodeship, or nationally. A single generator advanced across counties made every county's draw depend on how many references each preceding county held, which the 2026-08-14 county part repair changed - and with it the sample of every county after the repaired three.
Two files are written into ReportDirectory: one row per reference in BuildingModels_Verification.csv, and per county plus national totals in BuildingModels_Verification_Summary.txt. The row file is flushed county by county, so a run interrupted late still leaves everything it had already measured.
public class UIBuildingModelsVerificationTask : DiGi.Core.Classes.ReportableBackgroundTask<long>, DiGi.GIS.PostgreSQL.UI.Interfaces.IGISPostgreSQLUIObjectInheritance System.Object → DiGi.Core.Classes.BackgroundTask → DiGi.Core.Classes.CancelableBackgroundTask → DiGi.Core.Classes.ReportableBackgroundTask<System.Int64> → UIBuildingModelsVerificationTask
Implements IGISPostgreSQLUIObject
Initializes a new instance of the UIBuildingModelsVerificationTask class.
public UIBuildingModelsVerificationTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager GISWebAPIManager);GISWebAPIManager DiGi.GIS.WebAPI.Classes.GISWebAPIManager
The DiGi.GIS.PostgreSQL.UI.Classes.UIBuildingModelsVerificationTask.GISWebAPIManager instance used to communicate with the server.
Gets or sets the number of references asked for in a single request. The references travel in the query string, so a batch far above this risks the URL length limit of the server.
public int BatchSize { get; set; }Gets or sets the identifiers of the counties to be processed. When null every county held on the server is processed.
public System.Collections.Generic.IEnumerable<int>? CountyIds { get; set; }System.Collections.Generic.IEnumerable<System.Int32>
Gets or sets the seed of the sampling. Two runs sharing a seed draw the same references, which is what lets a run before a change be compared with one after it. The seed is combined per county by DiGi.GIS.PostgreSQL.Query.RandomSeed(System.Int32,System.Int32), so a county's draw does not depend on the scope of the run or on what any other county holds.
public int RandomSeed { get; set; }Gets or sets the directory the two report files are written into. When null the user is asked for one.
public string? ReportDirectory { get; set; }Gets or sets the number of references drawn per county. A value of zero or less takes every reference of the county.
public int SampleSize { get; set; }Gets or sets the distance tolerance the enclosure of a space is required to hold at.
public double Tolerance { get; set; }Gets or sets the two-digit voivodeship codes to be processed. A county is in scope when its code starts with one of them. When null every voivodeship is processed. Combined with CountyIds both filters have to admit the county.
public System.Collections.Generic.IEnumerable<string>? VoivodeshipCodes { get; set; }System.Collections.Generic.IEnumerable<System.String>
Formats a value for the report, writing an empty cell rather than the word for not a number.
private static string Text(double value);value System.Double
The value to format.
System.String
The formatted value, or an empty string when it is not a number.
A UI-driven post task that prompts the user to select a directory, reads CityGML city models from it, extracts DiGi.CityGML.Classes.Building instances, determines the county code from the file path, and uploads them to the server in batches.
public class UIBuildingsFromDirectoryPostTask : DiGi.GIS.WebAPI.Classes.BuildingsPostTask, DiGi.GIS.PostgreSQL.UI.Interfaces.IGISPostgreSQLUIObjectInheritance 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> → DiGi.GIS.WebAPI.Classes.BuildingsPostTask → UIBuildingsFromDirectoryPostTask
Implements IGISPostgreSQLUIObject
Initializes a new instance of the UIBuildingsFromDirectoryPostTask class.
public UIBuildingsFromDirectoryPostTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager GISWebAPIManager);GISWebAPIManager DiGi.GIS.WebAPI.Classes.GISWebAPIManager
The DiGi.GIS.WebAPI.Classes.GISWebAPIManager instance used to communicate with the server.
Asynchronously reads the source path recorded on the most recently written building.
private static System.Threading.Tasks.Task<string?> LatestSourceAsync(DiGi.GIS.WebAPI.Classes.GISWebAPIManager? GISWebAPIManager);GISWebAPIManager DiGi.GIS.WebAPI.Classes.GISWebAPIManager
The manager used to reach the server.
System.Threading.Tasks.Task<System.String>
A task whose result is the recorded source path, or null when the server holds no buildings or the path was not recorded.
UIBuildingsFromDirectoryPostTask.ProduceAsync(string, ChannelWriter<BuildingsBatch>, ResumeFilter, CancellationToken) Method
Walks the directory, parses each city model and publishes its tagged buildings to the channel.
private static System.Threading.Tasks.Task<bool> ProduceAsync(string directory, System.Threading.Channels.ChannelWriter<DiGi.GIS.PostgreSQL.UI.Classes.UIBuildingsFromDirectoryPostTask.BuildingsBatch> channelWriter, DiGi.GIS.PostgreSQL.UI.Classes.UIBuildingsFromDirectoryPostTask.ResumeFilter? resumeFilter, System.Threading.CancellationToken cancellationToken);directory System.String
The directory to walk.
channelWriter System.Threading.Channels.ChannelWriter<BuildingsBatch>
The writer the parsed batches are published to.
resumeFilter ResumeFilter
An optional filter that skips files preceding a recorded resume point, or null to walk everything.
cancellationToken System.Threading.CancellationToken
A token observed before each file is parsed.
System.Threading.Tasks.Task<System.Boolean>
A task that represents the asynchronous operation. The task result is true if the walk completed successfully; otherwise, false.
A parsed city model's buildings together with the county code derived from its file path.
private sealed class UIBuildingsFromDirectoryPostTask.BuildingsBatchInheritance System.Object → BuildingsBatch
Initializes a new instance of the BuildingsBatch class.
public BuildingsBatch(System.Collections.Generic.IEnumerable<DiGi.CityGML.Classes.Building> buildings, string? code);buildings System.Collections.Generic.IEnumerable<DiGi.CityGML.Classes.Building>
The buildings parsed from a single city model.
code System.String
The county code derived from the source file path, or null when it could not be determined.
Gets the buildings parsed from a single city model.
public System.Collections.Generic.IEnumerable<DiGi.CityGML.Classes.Building> Buildings { get; }System.Collections.Generic.IEnumerable<DiGi.CityGML.Classes.Building>
Gets the county code derived from the source file path.
public string? Code { get; }Skips walked files until a recorded source path is reached, then admits everything from that file onward.
The recorded file is admitted rather than skipped: the run that wrote it was interrupted, so it was probably only partly uploaded. Re-importing it is safe because the server upserts on (county, reference, lod, year).
private sealed class UIBuildingsFromDirectoryPostTask.ResumeFilterInheritance System.Object → ResumeFilter
Initializes a new instance of the ResumeFilter class.
public ResumeFilter(string source);source System.String
The recorded source path, relative to the walked directory, to resume from.
Gets a value indicating whether the recorded source path was ever reached during the walk.
public bool Matched { get; }Decides whether a walked file should be parsed.
public bool Admit(string path);path System.String
The walked file's path, relative to the walked directory.
System.Boolean
True once the recorded source path has been reached; otherwise, false.
Represents a task for posting DiGi.EPW.Classes.EPWFile objects to a PostgreSQL database from EPW files selected through the user interface.
public class UIEPWFileFromFilePostTask : DiGi.GIS.WebAPI.Classes.EPWFilesPostTask, DiGi.GIS.PostgreSQL.UI.Interfaces.IGISPostgreSQLUIObjectInheritance 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> → DiGi.GIS.WebAPI.Classes.EPWFilesPostTask → UIEPWFileFromFilePostTask
Implements IGISPostgreSQLUIObject
Initializes a new instance of the UIEPWFileFromFilePostTask class.
public UIEPWFileFromFilePostTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager GISWebAPIManager);GISWebAPIManager DiGi.GIS.WebAPI.Classes.GISWebAPIManager
The manager used to communicate with the GIS PostgreSQL Web API.
Concrete implementation of the background work.
protected override System.Threading.Tasks.Task<bool> ExecuteAsync(System.IProgress<long> progress, System.Threading.CancellationToken cancellationToken);progress System.IProgress<System.Int64>
The provider for reporting progress of the operation.
cancellationToken System.Threading.CancellationToken
The token to monitor for cancellation requests.
System.Threading.Tasks.Task<System.Boolean>
A task that represents the asynchronous operation. The task result is true if the operation succeeded; otherwise, false.
Represents a task that handles the process of posting occupancy data extracted from GIS model files to the PostgreSQL database through the user interface.
public class UIOccupancyDatasFromFilePostTask : DiGi.GIS.WebAPI.Classes.OccupancyDatasPostTask, DiGi.GIS.PostgreSQL.UI.Interfaces.IGISPostgreSQLUIObjectInheritance System.Object → DiGi.Core.Classes.BackgroundTask → DiGi.Core.Classes.CancelableBackgroundTask → DiGi.Core.Classes.ReportableBackgroundTask<System.Int64> → DiGi.GIS.WebAPI.Classes.SerializableObjectsPostTask<DiGi.GIS.Classes.OccupancyData> → DiGi.GIS.WebAPI.Classes.OccupancyDatasPostTask → UIOccupancyDatasFromFilePostTask
Implements IGISPostgreSQLUIObject
Initializes a new instance of the UIOccupancyDatasFromFilePostTask class.
public UIOccupancyDatasFromFilePostTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager GISWebAPIManager);GISWebAPIManager DiGi.GIS.WebAPI.Classes.GISWebAPIManager
The manager used to interact with the GIS PostgreSQL Web API.
Concrete implementation of the background work.
protected override System.Threading.Tasks.Task<bool> ExecuteAsync(System.IProgress<long> progress, System.Threading.CancellationToken cancellationToken);progress System.IProgress<System.Int64>
The provider for reporting progress of the operation.
cancellationToken System.Threading.CancellationToken
The token to monitor for cancellation requests.
System.Threading.Tasks.Task<System.Boolean>
A task that represents the asynchronous operation. The task result is true if the operation completed successfully; otherwise, false.
Represents a task for posting orthodata from files to a PostgreSQL database, specifically designed for use within the UI layer.
public class UIOrtoDatasFromFilePostTask : DiGi.GIS.WebAPI.Classes.OrtoDatasPostTask, DiGi.GIS.PostgreSQL.UI.Interfaces.IGISPostgreSQLUIObjectInheritance System.Object → DiGi.Core.Classes.BackgroundTask → DiGi.Core.Classes.CancelableBackgroundTask → DiGi.Core.Classes.ReportableBackgroundTask<System.Int64> → DiGi.GIS.WebAPI.Classes.SerializableObjectsPostTask<DiGi.GIS.Classes.OrtoDatas> → DiGi.GIS.WebAPI.Classes.OrtoDatasPostTask → UIOrtoDatasFromFilePostTask
Implements IGISPostgreSQLUIObject
Initializes a new instance of the UIOrtoDatasFromFilePostTask class.
public UIOrtoDatasFromFilePostTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager GISWebAPIManager);GISWebAPIManager DiGi.GIS.WebAPI.Classes.GISWebAPIManager
The manager used to communicate with the GIS PostgreSQL Web API.
Concrete implementation of the background work.
protected override System.Threading.Tasks.Task<bool> ExecuteAsync(System.IProgress<long> progress, System.Threading.CancellationToken cancellationToken);progress System.IProgress<System.Int64>
The progress reporter used to track the operation's completion percentage.
cancellationToken System.Threading.CancellationToken
The cancellation token used to observe while writing the task to stop executing.
System.Threading.Tasks.Task<System.Boolean>
A task that represents the asynchronous operation. The task result is true if the operation succeeded; otherwise, false.
A building data run that is scoped from the user interface: the counties, the kinds of column to write and the statement timeout are asked for through PostgreSQLBuildingDataUpdateOptionsWindow each time the task is started, and only then is the run handed to DiGi.GIS.PostgreSQL.Classes.PostgreSQLBuildingDataUpdateTask.
That is what the counties are worth asking for. Unscoped the run walks every subdivision in the country - around a hundred thousand of them - reading each subdivision's buildings and writing a row per building; over one named county it is minutes. Neither is a default the other would tolerate, and the base task takes an unset county collection as the whole country.
public class UIPostgreSQLBuildingDataUpdateTask : DiGi.GIS.PostgreSQL.Classes.PostgreSQLBuildingDataUpdateTask, DiGi.GIS.PostgreSQL.UI.Interfaces.IGISPostgreSQLUIObjectInheritance System.Object → DiGi.Core.Classes.BackgroundTask → DiGi.Core.Classes.CancelableBackgroundTask → DiGi.Core.Classes.ReportableBackgroundTask<System.Int64> → DiGi.GIS.PostgreSQL.Classes.PostgreSQLBuildingDataUpdateTask → UIPostgreSQLBuildingDataUpdateTask
Implements IGISPostgreSQLUIObject
Initializes a new instance of the UIPostgreSQLBuildingDataUpdateTask class.
public UIPostgreSQLBuildingDataUpdateTask(DiGi.GIS.PostgreSQL.Classes.GISPostgreSQLConverterManager GISPostgreSQLConverterManager);GISPostgreSQLConverterManager DiGi.GIS.PostgreSQL.Classes.GISPostgreSQLConverterManager
The GIS PostgreSQL converter manager used to read the areas and buildings and write the building data.
Executes the background task to update building data from AdministrativeAreal2D and Building2D sources.
protected override System.Threading.Tasks.Task<bool> ExecuteAsync(System.IProgress<long> progress, System.Threading.CancellationToken cancellationToken);progress System.IProgress<System.Int64>
A progress reporter for reporting the number of processed items.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used to cancel the operation.
System.Threading.Tasks.Task<System.Boolean>
A task representing the asynchronous operation. Returns true when the run could be attempted and every subdivision in scope was updated without error; otherwise, false.
A terrain point run that is scoped from the user interface: the counties, the spacing of the sampling grid and whether points already stored are sampled again are asked for through PostgreSQLTerrainPointCreateTableOptionsWindow each time the task is started, and only then is the run handed to DiGi.GIS.PostgreSQL.Classes.PostgreSQLTerrainPointCreateTableTask.
That is what the settings are worth asking for: a national pass at 50 m is about 125 million points and one request to the elevation service each, while the same task over a named county at 10 m is an afternoon. Neither is a default the other would tolerate.
public class UIPostgreSQLTerrainPointCreateTableTask : DiGi.GIS.PostgreSQL.Classes.PostgreSQLTerrainPointCreateTableTask, DiGi.GIS.PostgreSQL.UI.Interfaces.IGISPostgreSQLUIObjectInheritance System.Object → DiGi.Core.Classes.BackgroundTask → DiGi.Core.Classes.CancelableBackgroundTask → DiGi.Core.Classes.ReportableBackgroundTask<System.Int64> → DiGi.GIS.PostgreSQL.Classes.PostgreSQLTerrainPointCreateTableTask → UIPostgreSQLTerrainPointCreateTableTask
Implements IGISPostgreSQLUIObject
UIPostgreSQLTerrainPointCreateTableTask(GISWebAPIManager, GISPostgreSQLConverterManager) Constructor
Initializes a new instance of the UIPostgreSQLTerrainPointCreateTableTask class.
public UIPostgreSQLTerrainPointCreateTableTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager? GISWebAPIManager, DiGi.GIS.PostgreSQL.Classes.GISPostgreSQLConverterManager? GISPostgreSQLConverterManager);GISWebAPIManager DiGi.GIS.WebAPI.Classes.GISWebAPIManager
The manager the elevation service client is built from.
GISPostgreSQLConverterManager DiGi.GIS.PostgreSQL.Classes.GISPostgreSQLConverterManager
The GIS PostgreSQL converter manager used to read the areas and write the points.
Executes the background task, sampling elevations county by county and writing them to the terrain point table.
protected override System.Threading.Tasks.Task<bool> ExecuteAsync(System.IProgress<long> progress, System.Threading.CancellationToken cancellationToken);progress System.IProgress<System.Int64>
A progress reporter carrying the running total of points stored.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used to cancel the operation.
System.Threading.Tasks.Task<System.Boolean>
A task representing the asynchronous operation. Returns true unless the run was cancelled.
A terrain point repair that is scoped from the user interface: the counties and the spacing they were sampled at are asked for through PostgreSQLTerrainPointFillGapsOptionsWindow each time the task is started, and only then is the run handed to DiGi.GIS.PostgreSQL.Classes.PostgreSQLTerrainPointFillGapsTask.
The spacing is why the dialog is worth showing at all. It is what decides which nodes count as missing, and a value finer than a county actually holds turns a repair of a few thousand points into a densification of the whole country - so the measured spacing of each county is put in front of whoever is choosing it.
public class UIPostgreSQLTerrainPointFillGapsTask : DiGi.GIS.PostgreSQL.Classes.PostgreSQLTerrainPointFillGapsTask, DiGi.GIS.PostgreSQL.UI.Interfaces.IGISPostgreSQLUIObjectInheritance System.Object → DiGi.Core.Classes.BackgroundTask → DiGi.Core.Classes.CancelableBackgroundTask → DiGi.Core.Classes.ReportableBackgroundTask<System.Int64> → DiGi.GIS.PostgreSQL.Classes.PostgreSQLTerrainPointFillGapsTask → UIPostgreSQLTerrainPointFillGapsTask
Implements IGISPostgreSQLUIObject
Initializes a new instance of the UIPostgreSQLTerrainPointFillGapsTask class.
public UIPostgreSQLTerrainPointFillGapsTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager? GISWebAPIManager, DiGi.GIS.PostgreSQL.Classes.GISPostgreSQLConverterManager? GISPostgreSQLConverterManager);GISWebAPIManager DiGi.GIS.WebAPI.Classes.GISWebAPIManager
The manager the elevation service client is built from.
GISPostgreSQLConverterManager DiGi.GIS.PostgreSQL.Classes.GISPostgreSQLConverterManager
The GIS PostgreSQL converter manager used to read the areas and write the points.
Executes the background task, measuring each county against the lattice and sampling only the nodes it is short of.
protected override System.Threading.Tasks.Task<bool> ExecuteAsync(System.IProgress<long> progress, System.Threading.CancellationToken cancellationToken);progress System.IProgress<System.Int64>
A progress reporter carrying the running total of points stored.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used to cancel the operation.
System.Threading.Tasks.Task<System.Boolean>
A task representing the asynchronous operation. Returns true unless the run was cancelled.
Represents a task for populating territorial units into a PostgreSQL database from a JSON file selected through the user interface.
public class UIPostgreSQLUnitInsertFromFileTask : DiGi.GIS.PostgreSQL.Classes.PostgreSQLUnitInsertFromFileTask, DiGi.GIS.PostgreSQL.UI.Interfaces.IGISPostgreSQLUIObjectInheritance System.Object → DiGi.Core.Classes.BackgroundTask → DiGi.Core.Classes.CancelableBackgroundTask → DiGi.Core.Classes.ReportableBackgroundTask<System.Int64> → DiGi.GIS.PostgreSQL.Classes.PostgreSQLUnitInsertFromFileTask → UIPostgreSQLUnitInsertFromFileTask
Implements IGISPostgreSQLUIObject
Initializes a new instance of the UIPostgreSQLUnitInsertFromFileTask class from a manager.
public UIPostgreSQLUnitInsertFromFileTask(DiGi.GIS.PostgreSQL.Classes.GISPostgreSQLConverterManager gISPostgreSQLConverterManager);gISPostgreSQLConverterManager DiGi.GIS.PostgreSQL.Classes.GISPostgreSQLConverterManager
The GIS PostgreSQL converter manager containing the unit converter.
Initializes a new instance of the UIPostgreSQLUnitInsertFromFileTask class with a unit PostgreSQL converter.
public UIPostgreSQLUnitInsertFromFileTask(DiGi.GIS.PostgreSQL.Classes.UnitPostgreSQLConverter unitPostgreSQLConverter);unitPostgreSQLConverter DiGi.GIS.PostgreSQL.Classes.UnitPostgreSQLConverter
The unit PostgreSQL converter used to populate the table.
Executes the background task to read territorial units from JSON file(s) and insert them into PostgreSQL.
protected override System.Threading.Tasks.Task<bool> ExecuteAsync(System.IProgress<long> progress, System.Threading.CancellationToken cancellationToken);progress System.IProgress<System.Int64>
A progress reporter for reporting the number of processed items.
cancellationToken System.Threading.CancellationToken
A cancellation token that can be used to cancel the operation.
System.Threading.Tasks.Task<System.Boolean>
A task representing the asynchronous operation. Returns true if the population was successful; otherwise, false.
Represents a task that handles the process of updating GIS data from a file via user interface interactions.
public class UIUpdateFromFilePostTask : DiGi.GIS.WebAPI.Classes.Building2DsPostTask, DiGi.GIS.PostgreSQL.UI.Interfaces.IGISPostgreSQLUIObjectInheritance 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> → DiGi.GIS.WebAPI.Classes.Building2DsPostTask → UIUpdateFromFilePostTask
Implements IGISPostgreSQLUIObject
Initializes a new instance of the UIUpdateFromFilePostTask class.
public UIUpdateFromFilePostTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager GISWebAPIManager);GISWebAPIManager DiGi.GIS.WebAPI.Classes.GISWebAPIManager
The manager used to handle PostgreSQL Web API communications.
Concrete implementation of the background work.
protected override System.Threading.Tasks.Task<bool> ExecuteAsync(System.IProgress<long> progress, System.Threading.CancellationToken cancellationToken);progress System.IProgress<System.Int64>
The provider for reporting progress of the operation.
cancellationToken System.Threading.CancellationToken
The token to monitor for cancellation requests.
System.Threading.Tasks.Task<System.Boolean>
A task that represents the asynchronous operation. The task result is true if the update was successful; otherwise, false.
Represents a task that extracts year built data from GIS model files and posts it to the PostgreSQL database.
public class UIYearBuiltDatasFromFilePostTask : DiGi.GIS.WebAPI.Classes.YearBuiltDatasPostTask, DiGi.GIS.PostgreSQL.UI.Interfaces.IGISPostgreSQLUIObjectInheritance System.Object → DiGi.Core.Classes.BackgroundTask → DiGi.Core.Classes.CancelableBackgroundTask → DiGi.Core.Classes.ReportableBackgroundTask<System.Int64> → DiGi.GIS.WebAPI.Classes.SerializableObjectsPostTask<DiGi.GIS.Classes.YearBuiltData> → DiGi.GIS.WebAPI.Classes.YearBuiltDatasPostTask → UIYearBuiltDatasFromFilePostTask
Implements IGISPostgreSQLUIObject
Initializes a new instance of the UIYearBuiltDatasFromFilePostTask class.
public UIYearBuiltDatasFromFilePostTask(DiGi.GIS.WebAPI.Classes.GISWebAPIManager GISWebAPIManager);GISWebAPIManager DiGi.GIS.WebAPI.Classes.GISWebAPIManager
The manager used to handle communication with the PostgreSQL Web API.
Concrete implementation of the background work.
protected override System.Threading.Tasks.Task<bool> ExecuteAsync(System.IProgress<long> progress, System.Threading.CancellationToken cancellationToken);progress System.IProgress<System.Int64>
The provider for reporting progress of the operation.
cancellationToken System.Threading.CancellationToken
The token to monitor for cancellation requests.
System.Threading.Tasks.Task<System.Boolean>
A task that represents the asynchronous operation. The task result is true if the process succeeded; otherwise, false.