Exemplo n.º 1
0
        private TOU MapTOURecord(string line, StringBuilder trace)
        {
            var record = new TOU();

            string[] fields = line.Split(_separator);

            trace.Append($"Reading field: MeterCode.{_newLine}");
            record.MeterCode = Helper.ConvertToInt(fields[0]);

            trace.Append($"Reading field: Serial.{_newLine}");
            record.Serial = Helper.ConvertToInt(fields[1]);

            trace.Append($"Reading field: PlantCode.{_newLine}");
            record.PlantCode = fields[2];

            trace.Append($"Reading field: DateTime.{_newLine}");
            record.DateTime = Helper.ConvertToDateTimeFromCSV(fields[3]);

            trace.Append($"Reading field: Quality.{_newLine}");
            record.Quality = fields[4];

            trace.Append($"Reading field: Stream.{_newLine}");
            record.Stream = fields[5];

            trace.Append($"Reading field: DataType.{_newLine}");
            record.DataType = Helper.ConvertToDataType(fields[6]);

            trace.Append($"Reading field: Energy.{_newLine}");
            record.Energy = Helper.ConvertToDecimal(fields[7]);

            trace.Append($"Reading field: Units.{_newLine}");
            record.Units = Helper.ConvertToUnits(fields[8]);

            return(record);
        }
        private PutItemRequest BuildTOUPutRequest(int id, TOU record)
        {
            var row = new Dictionary <string, AttributeValue>
            {
                { "Id", new AttributeValue {
                      N = id.ToString()
                  } },
                { "MeterCode", new AttributeValue {
                      N = record.MeterCode.ToString()
                  } },
                { "Serial", new AttributeValue {
                      N = record.Serial.ToString()
                  } },
                { "PlantCode", new AttributeValue {
                      S = record.PlantCode
                  } },
                { "DateTime", new AttributeValue {
                      S = record.DateTime.ToString()
                  } },
                { "Quality", new AttributeValue {
                      S = record.Quality
                  } },
                { "Stream", new AttributeValue {
                      S = record.Stream
                  } },
                { "DataType", new AttributeValue {
                      N = ((int)record.DataType).ToString()
                  } },
                { "Energy", new AttributeValue {
                      N = record.Energy.ToString()
                  } },
                { "Units", new AttributeValue {
                      N = ((int)record.Units).ToString()
                  } },
            };

            return(new PutItemRequest
            {
                TableName = _touTableName,
                Item = row
            });
        }
Exemplo n.º 3
0
        private List <TOU> ReadTOUFile(string filePath)
        {
            var records = new List <TOU>();
            var trace   = new StringBuilder();

            trace.Append($"Start reading {filePath}.");

            try
            {
                using (TextFieldParser parser = new TextFieldParser(filePath))
                {
                    parser.TextFieldType = FieldType.Delimited;
                    parser.SetDelimiters(",");
                    int lineCount = 0;

                    while (!parser.EndOfData)
                    {
                        lineCount++;
                        trace.Append($"Start reading line: {lineCount}.");

                        try
                        {
                            var record = new TOU();

                            string[] fields = parser.ReadFields();

                            trace.Append($"Reading field: MeterCode.");
                            record.MeterCode = Helper.ConvertToInt(fields[0]);

                            trace.Append($"Reading field: Serial.");
                            record.Serial = Helper.ConvertToInt(fields[1]);

                            trace.Append($"Reading field: PlantCode.");
                            record.PlantCode = fields[2];

                            trace.Append($"Reading field: DateTime.");
                            record.DateTime = Helper.ConvertToDateTimeFromDB(fields[3]);

                            trace.Append($"Reading field: Quality.");
                            record.Quality = fields[4];

                            trace.Append($"Reading field: Stream.");
                            record.Stream = fields[5];

                            trace.Append($"Reading field: DataType.");
                            record.DataType = Helper.ConvertToDataType(fields[6]);

                            trace.Append($"Reading field: Energy.");
                            record.Energy = Helper.ConvertToDecimal(fields[7]);

                            trace.Append($"Reading field: Units.");
                            record.Units = Helper.ConvertToUnits(fields[8]);

                            records.Add(record);
                        }
                        catch (Exception e)
                        {
                            trace.Append($"Error reading line: {lineCount}. Error: {e}.");
                        }

                        trace.Append($"End reading line: {lineCount}.");
                    }

                    trace.Append($"{records.Count} lines found.");
                }
            }
            catch (Exception e)
            {
                trace.Append($"Error reading {filePath}. Error: {e}.");
                _logger.LogError(trace.ToString(), e);
            }

            trace.Append($"{records.Count} lines converted.");

            trace.Append($"End reading {filePath}.");

            Console.Write(trace.ToString());
            _logger.LogInformation(trace.ToString());

            return(records);
        }