コード例 #1
0
        public async Task <IEnumerable <Wellbore> > GetWellbores(string wellUid = null)
        {
            var start = DateTime.Now;
            var query = string.IsNullOrEmpty(wellUid) ? WellboreQueries.QueryAll() : WellboreQueries.QueryByWell(wellUid);

            var result = await WitsmlClient.GetFromStoreAsync(query, OptionsIn.Requested);

            var wellbores = result.Wellbores
                            .Select(witsmlWellbore =>
                                    new Wellbore
            {
                Uid                = witsmlWellbore.Uid,
                Name               = witsmlWellbore.Name,
                WellUid            = witsmlWellbore.UidWell,
                WellName           = witsmlWellbore.NameWell,
                WellStatus         = witsmlWellbore.StatusWellbore,
                WellType           = witsmlWellbore.TypeWellbore,
                IsActive           = StringHelpers.ToBooleanSafe(witsmlWellbore.IsActive),
                DateTimeLastChange = StringHelpers.ToDateTime(witsmlWellbore.CommonData.DTimLastChange)
            })
                            .OrderBy(wellbore => wellbore.Name).ToList();
            var elapsed = DateTime.Now.Subtract(start).Milliseconds / 1000.0;

            Log.Debug($"Fetched {wellbores.Count} wellbores in {elapsed} seconds");
            return(wellbores);
        }
コード例 #2
0
        public async Task <IEnumerable <LogObject> > GetLogs(string wellUid, string wellboreUid)
        {
            var query  = LogQueries.QueryByWellbore(wellUid, wellboreUid);
            var result = await WitsmlClient.GetFromStoreAsync(query, OptionsIn.HeaderOnly);

            return(result.Logs.Select(log =>
                                      new LogObject
            {
                Uid = log.Uid,
                Name = log.Name,
                IndexType = log.IndexType,
                WellUid = log.UidWell,
                WellName = log.NameWell,
                WellboreUid = log.UidWellbore,
                WellboreName = log.NameWellbore,
                ObjectGrowing = StringHelpers.ToBooleanSafe(log.ObjectGrowing),
                ServiceCompany = log.ServiceCompany,
                RunNumber = log.RunNumber,

                StartIndex = GetIndexAsString(log.IndexType, log.StartIndex, log.StartDateTimeIndex),
                EndIndex = GetIndexAsString(log.IndexType, log.EndIndex, log.EndDateTimeIndex),
                DateTimeLastChange = StringHelpers.ToDateTime(log.CommonData.DTimLastChange),
                IndexCurve = log.IndexCurve.Value
            }).OrderBy(log => log.Name));
        }
コード例 #3
0
        public async Task <LogObject> GetLog(string wellUid, string wellboreUid, string logUid, OptionsIn queryOptions)
        {
            var query  = LogQueries.GetWitsmlLogById(wellUid, wellboreUid, logUid);
            var result = await WitsmlClient.GetFromStoreAsync(query, queryOptions);

            var witsmlLog = result.Logs.FirstOrDefault();

            if (witsmlLog == null)
            {
                return(null);
            }

            var logObject = new LogObject
            {
                Uid            = witsmlLog.Uid,
                Name           = witsmlLog.Name,
                IndexType      = witsmlLog.IndexType,
                WellUid        = witsmlLog.UidWell,
                WellName       = witsmlLog.NameWell,
                WellboreUid    = witsmlLog.UidWellbore,
                WellboreName   = witsmlLog.NameWellbore,
                IndexCurve     = witsmlLog.IndexCurve.Value,
                ObjectGrowing  = StringHelpers.ToBooleanSafe(witsmlLog.ObjectGrowing),
                ServiceCompany = witsmlLog.ServiceCompany,
                RunNumber      = witsmlLog.RunNumber
            };

            if (string.IsNullOrEmpty(witsmlLog.IndexType))
            {
                return(logObject);
            }

            logObject.StartIndex = witsmlLog.GetStartIndexAsString();
            logObject.EndIndex   = witsmlLog.GetEndIndexAsString();

            return(logObject);
        }