Пример #1
0
        static async Task <int> MainAsync(string[] args)
        {
            try
            {
                #region Test

                /*
                 * // WARNING: Remove or comment out this part for production.
                 * var testArgs = AppSettings.SensorListener.ExecutionParamsStringExample.Split(' ');
                 * args = testArgs;
                 */
                #endregion Test

                _parsedInputParams = CommandLineArgsParser.CommandLineArgsParser.ParseInputParams(args);
            }
            catch (Exception ex)
            {
                var errorMessage = "ERROR: execution params parsing failed.\r\n" + ex.Message;
                Console.WriteLine(errorMessage);

                return(1);
            }

            _measurementName = AppSettings.MeasurementNameBase + _parsedInputParams.TestId;

            _influxClient = new InfluxClient(new Uri(AppSettings.InfluxHost));

            // var databases = await _client.ShowDatabasesAsync();

            await _influxClient.CreateDatabaseAsync(AppSettings.InfluxDatabaseName); // Creates Influx database if not exist

            InitTimer(_parsedInputParams.ProgramExecutionTime);

            try
            {
                Console.WriteLine("Listening to port: {0}...", AppSettings.SensorListener.ListenPort);

                Thread receiveThread = new Thread(new ThreadStart(ReceiveMessage));
                receiveThread.Start();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);

                return(2);
            }

            return(0);
        }
 internal ConsoleBigFileCreator(string inputParams)
 {
     _params = new ParsedInputParams(inputParams);
 }
        static async Task <int> MainAsync(string[] args)
        {
            var x = InfluxHost;

            _client = new InfluxClient(new Uri(InfluxHost));

            await _client.CreateDatabaseAsync(InfluxDatabaseName); // Creates Influx database if not exist

            try
            {
                #region Test

                var isDebug = true;

                if (isDebug)
                {
                    // WARNING: Remove or comment out this part for production.
                    var testArgs = ExecutionParamsStringExample.Split(' ');
                    args = testArgs;
                }

                #endregion Test

                _parsedInputParams = ParseInputParams(args);
            }
            catch (Exception ex)
            {
                var errorMessage = "ERROR: execution params parsing failed.\r\n" + ex.Message;
                Console.WriteLine(errorMessage);

                return(1);
            }

            foreach (var testSensorsInfo in _parsedInputParams.TestSensorsInfo)
            {
                var query = QueryMaker.GetSensorOutputsForTest(
                    testSensorsInfo.TestId,
                    _parsedInputParams.LeftTimeBorder,
                    _parsedInputParams.RightTimeBorder,
                    testSensorsInfo.Sensors);

                var resultSet = await _client.ReadAsync <SensorOutput>(InfluxDatabaseName, query);

                var results = resultSet.Results[0];
                var series  = results.Series;

                if (series.Count < 1)
                {
                    Console.WriteLine(
                        $"WARNING: There were no outputs found for the specified parameters: \r\n" +
                        GetSearchConditionsString(_parsedInputParams.LeftTimeBorder, _parsedInputParams.RightTimeBorder,
                                                  testSensorsInfo));

                    continue;
                }

                var retrievedOutputs = series[0].Rows;

                try
                {
                    await ParseSensorsDatatypeAsync(testSensorsInfo.Sensors);
                }
                catch (Npgsql.PostgresException postgresException)
                {
                    Console.WriteLine("ERROR:" + postgresException.Message);
                    return(1);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }

                var outputsForExport = ParseRetrievedData(retrievedOutputs);

                var jsonExport = new JsonExport(
                    testSensorsInfo.TestId,
                    _parsedInputParams.LeftTimeBorder,
                    _parsedInputParams.RightTimeBorder,
                    outputsForExport);

                var exportedFile = jsonExport.GetSensorOutputsFile();

                // var directoryPath = DefaultDirectoryPath;
                var directoryPath = _parsedInputParams.DirectoryPath;

                try
                {
                    FileWriter.WriteFileToDirectory(directoryPath, exportedFile.FileContents, exportedFile.FileName);

                    WriteSuccessMessage(
                        _parsedInputParams.LeftTimeBorder,
                        _parsedInputParams.RightTimeBorder,
                        testSensorsInfo,
                        exportedFile.FileName
                        );
                }
                catch (Exception e)
                {
                    Console.Write("ERROR: Writing to file failed with the following message: ");
                    Console.WriteLine(e);
                }
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();

            return(0);
        }