Esempio n. 1
0
        /// <summary>
        /// Converts a logCurveInfo to a channel metadata record.
        /// </summary>
        /// <param name="entity">The entity.</param>
        /// <param name="curve">The curve.</param>
        /// <param name="indexMetadata">The index metadata.</param>
        /// <returns></returns>
        protected override ChannelMetadataRecord ToChannelMetadataRecord(Log entity, LogCurveInfo curve, IndexMetadataRecord indexMetadata)
        {
            var uri          = curve.GetUri(entity);
            var isTimeLog    = IsTimeLog(entity, true);
            var curveIndexes = GetCurrentIndexRange(entity);
            var dataObject   = new DataObject();
            var unixTime     = entity.CommonData.DateTimeLastChange.ToUnixTimeMicroseconds();

            StoreStoreProvider.SetDataObject(dataObject, curve, uri, curve.Mnemonic.Value, 0, unixTime.GetValueOrDefault());

            return(new ChannelMetadataRecord()
            {
                ChannelUri = uri,
                ContentType = uri.ContentType,
                DataType = curve.TypeLogData.GetValueOrDefault(LogDataType.@double).ToString().Replace("@", string.Empty),
                Description = curve.CurveDescription ?? curve.Mnemonic.Value,
                ChannelName = curve.Mnemonic.Value,
                Uom = Units.GetUnit(curve.Unit),
                MeasureClass = curve.ClassWitsml ?? ObjectTypes.Unknown,
                Source = curve.DataSource ?? ObjectTypes.Unknown,
                DomainObject = dataObject,
                Status = entity.ObjectGrowing.GetValueOrDefault() ? ChannelStatuses.Active : ChannelStatuses.Inactive,
                StartIndex = curveIndexes[curve.Mnemonic.Value].Start.IndexToScale(indexMetadata.Scale, isTimeLog),
                EndIndex = curveIndexes[curve.Mnemonic.Value].End.IndexToScale(indexMetadata.Scale, isTimeLog),
                Indexes = new List <IndexMetadataRecord>()
                {
                    indexMetadata
                },
                CustomData = new Dictionary <string, DataValue>()
            });
        }
Esempio n. 2
0
        private ChannelMetadataRecord ToChannelMetadataRecord(Channel channel, IList <IndexMetadataRecord> indexMetadata)
        {
            var uri          = channel.GetUri();
            var primaryIndex = indexMetadata.FirstOrDefault();
            var isTimeLog    = primaryIndex != null && primaryIndex.IndexType == ChannelIndexTypes.Time;
            var channelIndex = GetIndexRange(channel);
            var dataObject   = new DataObject();
            var lastChanged  = channel.Citation.LastUpdate.ToUnixTimeMicroseconds().GetValueOrDefault();

            StoreStoreProvider.SetDataObject(dataObject, channel, uri, channel.Mnemonic, 0, lastChanged);

            return(new ChannelMetadataRecord()
            {
                ChannelUri = uri,
                ContentType = uri.ContentType,
                DataType = channel.DataType.GetValueOrDefault(EtpDataType.@double).ToString().Replace("@", string.Empty),
                Description = channel.Citation != null ? channel.Citation.Description ?? channel.Mnemonic : channel.Mnemonic,
                ChannelName = channel.Mnemonic,
                Uom = Units.GetUnit(channel.Uom),
                MeasureClass = channel.ChannelClass?.Title ?? ObjectTypes.Unknown,
                Source = channel.Source ?? ObjectTypes.Unknown,
                Uuid = channel.Mnemonic,
                DomainObject = dataObject,
                Status = ChannelStatuses.Active,
                //Status = (ChannelStatuses)(int)channel.GrowingStatus.GetValueOrDefault(ChannelStatus.inactive),
                StartIndex = primaryIndex == null ? null : channelIndex.Start.IndexToScale(primaryIndex.Scale, isTimeLog),
                EndIndex = primaryIndex == null ? null : channelIndex.End.IndexToScale(primaryIndex.Scale, isTimeLog),
                Indexes = indexMetadata,
                CustomData = new Dictionary <string, DataValue>()
            });
        }
Esempio n. 3
0
        private ChannelMetadataRecord ToChannelMetadataRecord(Trajectory entity, IndexMetadataRecord indexMetadata)
        {
            var uri         = entity.GetUri();
            var dataObject  = new DataObject();
            var lastChanged = entity.Citation.LastUpdate.ToUnixTimeMicroseconds().GetValueOrDefault();

            StoreStoreProvider.SetDataObject(dataObject, entity, uri, entity.Citation.Title, 0, lastChanged);

            return(new ChannelMetadataRecord()
            {
                ChannelUri = uri,
                ContentType = uri.ContentType,
                DataType = [email protected](),
                Description = entity.Citation.Description ?? entity.Citation.Title,
                ChannelName = entity.Citation.Title,
                Uom = Units.GetUnit(entity.MDMin?.Uom.ToString()),
                MeasureClass = ObjectTypes.Unknown,
                Source = ObjectTypes.Unknown,
                Uuid = entity.Uuid,
                DomainObject = dataObject,
                Status = GetStatus(entity.GrowingStatus),
                StartIndex = entity.MDMin?.Value.IndexToScale(indexMetadata.Scale),
                EndIndex = entity.MDMax?.Value.IndexToScale(indexMetadata.Scale),
                Indexes = new List <IndexMetadataRecord>()
                {
                    indexMetadata
                },
                CustomData = new Dictionary <string, DataValue>()
            });
        }
Esempio n. 4
0
        private static DataObject ToDataObject(Trajectory entity, TrajectoryStation trajectoryStation)
        {
            var dataObject = new DataObject();

            if (entity == null || trajectoryStation == null)
            {
                return(dataObject);
            }

            var uri      = entity.GetUri();
            var childUri = uri.Append(ObjectTypes.TrajectoryStation, trajectoryStation.Uid);

            StoreStoreProvider.SetDataObject(dataObject, trajectoryStation, childUri, entity.Citation.Title, 0);

            return(dataObject);
        }
        protected virtual DataObject GetDataObject(string objectType, string version, object dataObject, bool includeObjectData)
        {
            var jObject = dataObject as JObject;

            if (jObject != null || dataObject is string)
            {
                var type = ObjectTypes.GetObjectGroupType(objectType, version) ??
                           ObjectTypes.GetObjectType(objectType, version);

                dataObject = jObject?.ToObject(type) ??
                             WitsmlParser.Parse(type, WitsmlParser.Parse(dataObject.ToString()).Root);
            }

            var collection  = dataObject as IEnergisticsCollection;
            var iDataObject = collection?.Items?.OfType <IDataObject>().FirstOrDefault();
            var cDataObject = iDataObject as ICommonDataObject;
            var aDataObject = dataObject as Witsml200.AbstractObject;

            var uri         = iDataObject?.GetUri() ?? aDataObject?.GetUri() ?? new EtpUri();
            var name        = iDataObject?.Name ?? aDataObject?.Citation?.Title;
            var lastChanged = cDataObject?.CommonData?.DateTimeLastChange?.ToUnixTimeMicroseconds() ??
                              aDataObject?.Citation?.LastUpdate?.ToUnixTimeMicroseconds();

            var etpDataObject = new DataObject();

            // Do not return DataObject.Data if not requested in original subscription
            StoreStoreProvider.SetDataObject(
                etpDataObject,
                includeObjectData ? dataObject : null,
                uri,
                name,
                -1,
                lastChanged.GetValueOrDefault());

            return(etpDataObject);
        }