/// <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>() }); }
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>() }); }
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>() }); }
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); }