コード例 #1
0
        private MeasurementV1 CreateMeasurementFromVariable(Variable variable, IObservation observation, Metadata metadata)
        {
            // Look up property based on string, get value
            var value = observation.GetType().GetProperty(variable.FieldName).GetValue(observation, null);

            Nsar.Common.Measure.Models.PhysicalQuantity pq = new Nsar.Common.Measure.Models.PhysicalQuantity(
                Convert.ToDecimal(value),
                variable.Units);

            // TODO: create interface, use constructor injection
            Nsar.Common.Measure.PhysicalQuantityConverter pqConverter = new Nsar.Common.Measure.PhysicalQuantityConverter();

            Nsar.Common.Measure.Models.PhysicalQuantity pqMetric = pqConverter.Convert(pq);
            string   name = map.GetMeasurementName(variable.FieldName);
            DateTime measurementDateTime = new DateTime(observation.TIMESTAMP.Ticks, DateTimeKind.Utc);

            List <PhysicalQuantityV1> physicalQuantitis = new List <PhysicalQuantityV1>()
            {
                new PhysicalQuantityV1(pqMetric.Value, pqMetric.Unit, 0, 0, 0, DateTime.UtcNow, "CosmosDBSqlApiTransformer")
            };

            LocationV1 location = new LocationV1("Point",
                                                 map.GetLatFromStation(metadata),
                                                 map.GetLonFromStation(metadata));

            string fieldId = map.GetFieldID(metadata);

            string partitionKey = "EcTower_" + fieldId + "_" + name;
            string id           = fieldId + "_" + name + "_" + measurementDateTime.ToString("o");

            return(new MeasurementV1(partitionKey, id, DocumentType, name, TargetSchemaVersion, metadataId,
                                     "", "", "", "", null, fieldId, location, measurementDateTime, physicalQuantitis));
        }
コード例 #2
0
 public MeasurementV1(
     string partitionKey, string id, string type, string name,
     string schemaVersion, string metadataID, string _rid,
     string _self, string _etag, string _attachements,
     int?_ts, string fieldId, LocationV1 location,
     DateTime measurementDateTime,
     List <PhysicalQuantityV1> physicalQuantities)
 {
     PartitionKey        = partitionKey;
     ID                  = id;
     Type                = type;
     Name                = name;
     SchemaVersion       = schemaVersion;
     MetadataID          = metadataID;
     this._rid           = _rid;
     this._self          = _self;
     this._etag          = _etag;
     this._attachments   = _attachments;
     this._ts            = _ts;
     FieldID             = fieldId;
     Location            = location;
     MeasurementDateTime = measurementDateTime;
     PhysicalQuantities  = physicalQuantities;
 }