/// <summary> /// Gets the <see cref="EtpUri"/> for a given <see cref="IWellboreObject"/>. /// </summary> /// <param name="entity">The <see cref="IWellboreObject"/> entity.</param> /// <returns>An <see cref="EtpUri"/> instance.</returns> public static EtpUri GetUri(this IWellboreObject entity) { return(entity.GetUriFamily() .Append(ObjectTypes.Well, entity.UidWell, true) .Append(ObjectTypes.Wellbore, entity.UidWellbore, true) .Append(ObjectTypes.GetObjectType(entity), entity.Uid, true)); }
public void Witsml131Provider_IsValidUri() { Witsml131Provider_Witsml131Provider(); var access = new PrivateObject(_actual); { string[] expected_typeNames = { "BhaRun", "CementJob", "ConvCore", "FluidsReport", "FormationMarker", "Log", "Message", "MudLog", "OpsReport", "Rig", "Risk", "SidewallCore", "SurveyProgram", "Target", "Trajectory", "Tubular", "StandAloneWellboreGeometry", "WellLog", }; Assert.AreEqual(18, expected_typeNames.Length); var adapters = GetDataAdapters <IWellboreObject>(_actual.Providers).ToList(); //Assert.AreEqual(23, adapters.Count); var actual_typeNames = adapters.Select(x => x.DataObjectType.Name).ToArray(); CollectionAssert.AreEqual(expected_typeNames, actual_typeNames); foreach (var x in adapters) { System.Type t = x.DataObjectType; IWellboreObject instance = (IWellboreObject)Activator.CreateInstance(t); instance.Uid = "abc"; instance.UidWell = "abc"; instance.UidWellbore = "abc"; var uri = instance.GetUri(); var parentUri = uri.Parent; var folderUri = parentUri.Append(uri.ObjectType); bool valid = (bool)access.Invoke("IsValidUri", folderUri); Assert.IsTrue(valid, t.Name); } } }
private Resource ToResource(IWellboreObject entity) { return(DiscoveryStoreProvider.New( uuid: entity.Uid, uri: entity.GetUri(), resourceType: ResourceTypes.DataObject, name: entity.Name, count: entity is Log ? -1 : 0)); }
private IResource ToResource(IEtpAdapter etpAdapter, IWellboreObject entity) { return(etpAdapter.CreateResource( uuid: null, uri: entity.GetUri(), resourceType: ResourceTypes.DataObject, name: entity.Name, count: (entity as Log)?.LogCurveInfo?.Count ?? 0, lastChanged: (entity as ICommonDataObject).GetLastChangedMicroseconds())); }
/// <summary> /// Determines whether the log has the specified index type. /// </summary> /// <param name="log">The data object.</param> /// <param name="indexType">The index type.</param> /// <returns></returns> public static bool HasSpecifiedIndexType(this IWellboreObject log, string indexType) { var log131 = log as Witsml131.Log; var log141 = log as Witsml141.Log; if (log131 != null && log131.IndexType.ToString().EqualsIgnoreCase(indexType)) { return(true); } return(log141 != null && log141.IndexType.ToString().EqualsIgnoreCase(indexType)); }
/// <summary> /// Determines if the growing object object is empty or not. /// </summary> /// <param name="dataObject">The growing data object.</param> /// <returns>true if the object is empty; false otherwise</returns> public static bool?IsGrowingObjectEmpty(this IWellboreObject dataObject) { var startIndex = dataObject.GetStartIndex(); var endIndex = dataObject.GetEndIndex(); if (startIndex == null || endIndex == null) { return(null); } return(string.IsNullOrWhiteSpace(startIndex) && string.IsNullOrWhiteSpace(endIndex)); }
private void LoadLogCurveInfo(IList <ResourceViewModel> items, IWellboreObject dataObject) { var log131 = dataObject as Witsml131.Log; var log141 = dataObject as Witsml141.Log; log131?.LogCurveInfo .Select(x => ToResourceViewModel(x.GetUri(log131), x.Mnemonic, null, 0)) .ForEach(items.Add); log141?.LogCurveInfo .Select(x => ToResourceViewModel(x.GetUri(log141), x.Mnemonic.Value, null, 0)) .ForEach(items.Add); }
public void Witsml141Provider_TypeList() { Witsml141Provider_Witsml141Provider(); { var adapters = GetDataAdapters <IWellboreObject>(_actual.Providers).ToList(); foreach (var x in adapters) { System.Type t = x.DataObjectType; string t_name = ObjectTypes.GetObjectType(t); Debug.WriteLine($"{t.Name} -> {t_name}"); IWellboreObject instance = (IWellboreObject)Activator.CreateInstance(t); Assert.AreEqual(t.Name, instance.GetType().Name); } /* * Attachment -> attachment * BhaRun -> bhaRun * CementJob -> cementJob * ConvCore -> convCore * DepthRegImage -> depthRegImage * DrillReport -> drillReport * FluidsReport -> fluidsReport * FormationMarker -> formationMarker * Log -> log * Message -> message * MudLog -> mudLog * OpsReport -> opsReport * Rig -> rig * Risk -> risk * SidewallCore -> sidewallCore * StimJob -> stimJob * SurveyProgram -> surveyProgram * Target -> target * Trajectory -> trajectory * Tubular -> tubular * StandAloneWellboreGeometry -> wbGeometry * WellboreCompletion -> wellboreCompletion * WellCMLedger -> wellCMLedger */ } }
/// <summary> /// Gets the end index. /// </summary> /// <param name="dataObject">The data object.</param> /// <param name="displayTimeOffset">The display time offset.</param> /// <returns></returns> public static string GetEndIndex(this IWellboreObject dataObject, TimeSpan?displayTimeOffset = null) { var endIndex = string.Empty; var log131 = dataObject as Witsml131.Log; var log141 = dataObject as Witsml141.Log; var mudLog131 = dataObject as Witsml131.MudLog; var mudLog141 = dataObject as Witsml141.MudLog; var trajectory131 = dataObject as Witsml131.Trajectory; var trajectory141 = dataObject as Witsml141.Trajectory; if (log131 == null && log141 == null && mudLog131 == null && mudLog141 == null && trajectory131 == null && trajectory141 == null) { return(null); } if (log131 != null || log141 != null) { if (log131?.IndexType == Witsml131.ReferenceData.LogIndexType.datetime || log141?.IndexType == Witsml141.ReferenceData.LogIndexType.datetime) { var isEndIndexSpecified = log131?.EndDateTimeIndexSpecified ?? log141.EndDateTimeIndexSpecified; if (isEndIndexSpecified) { if (displayTimeOffset != null) { endIndex = log131?.EndDateTimeIndex.ToDisplayDateTime(displayTimeOffset.Value) ?? log141?.EndDateTimeIndex.ToDisplayDateTime(displayTimeOffset.Value); } else { endIndex = log131?.EndDateTimeIndex?.ToString() ?? log141?.EndDateTimeIndex?.ToString(); } } } else { endIndex = log131?.EndIndex?.ToString() ?? log141?.EndIndex?.ToString(); } } if (mudLog131 != null || mudLog141 != null) { endIndex = mudLog131?.EndMD?.Value.ToString(CultureInfo.InvariantCulture) ?? mudLog141?.EndMD?.Value.ToString(CultureInfo.InvariantCulture); } if (trajectory131 != null || trajectory141 != null) { endIndex = trajectory131?.MDMax?.Value.ToString(CultureInfo.InvariantCulture) ?? trajectory141?.MDMax?.Value.ToString(CultureInfo.InvariantCulture); } return(endIndex); }
private static Trajectory CreateTrajectory(string uid, string name, IWellboreObject trajectoryWellbore) { return(new Trajectory { Uid = uid, Name = name, UidWell = trajectoryWellbore.UidWell, UidWellbore = trajectoryWellbore.UidWellbore, NameWell = trajectoryWellbore.NameWell, NameWellbore = trajectoryWellbore.NameWellbore }); }