Example #1
0
 /// <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));
 }
Example #2
0
        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);
                }
            }
        }
Example #3
0
 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));
 }
Example #4
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()));
 }
Example #5
0
        /// <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));
        }
Example #6
0
        /// <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);
        }
Example #8
0
        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
                 */
            }
        }
Example #9
0
        /// <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);
        }
Example #10
0
 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
     });
 }