public static ISosClient CreateConnectedClient(Context context) { var client = new SosClient(context.Config.SosServer, context.Config.SosUsername, context.Config.SosPassword) { MaximumPointsPerObservation = context.MaximumPointsPerObservation, TimeoutMilliseconds = Convert.ToInt32(context.Timeout.TotalMilliseconds) }; client.Connect(); return(client); }
private void ClearExportedData() { if (Context.DryRun) { LogDryRun("Would have cleared the SOS database of all existing data."); return; } using (var sosClient = SosClient.CreateConnectedClient(Context)) { // Create a separate SOS client connection to ensure that the transactions are committed when the client disconnects sosClient.ClearDatasource(); sosClient.DeleteDeletedObservations(); } }
private void ExportToSos( TimeSeriesUniqueIdListServiceRequest request, TimeSeriesUniqueIdListServiceResponse response, List <TimeSeriesDescription> timeSeriesDescriptions, bool clearExportedData) { var filteredTimeSeriesDescriptions = FilterTimeSeriesDescriptions(timeSeriesDescriptions); var changeEvents = response.TimeSeriesUniqueIds; Log.Info($"Exporting {filteredTimeSeriesDescriptions.Count} time-series ..."); if (clearExportedData) { ClearExportedData(); } var stopwatch = Stopwatch.StartNew(); foreach (var timeSeriesDescription in filteredTimeSeriesDescriptions) { using (Sos = SosClient.CreateConnectedClient(Context)) { // Create a separate SOS client connection to ensure that the transactions are committed after each export var description = timeSeriesDescription; ExportTimeSeries( clearExportedData, request.ChangesSinceToken, changeEvents.Single(t => t.UniqueId == description.UniqueId), timeSeriesDescription); } if (stopwatch.Elapsed <= MaximumExportDuration) { continue; } Log.Info($"Maximum export duration has elapsed. Checking {GetFilterSummary(request)} ..."); stopwatch.Restart(); FetchNewChanges(request, filteredTimeSeriesDescriptions, changeEvents); } }
private static void ConfigureJson() { ServiceStackConfig.ConfigureServiceStack(); SosClient.ConfigureJsonOnce(); }