Example #1
0
        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);
        }
Example #2
0
        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();
            }
        }
Example #3
0
        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);
            }
        }
Example #4
0
 private static void ConfigureJson()
 {
     ServiceStackConfig.ConfigureServiceStack();
     SosClient.ConfigureJsonOnce();
 }