コード例 #1
0
        private static CopyLogDataJob CreateCopyLogDataJob(CopyLogJob job, WitsmlLog log)
        {
            var referenceForNewLog = new LogReference
            {
                WellUid     = job.Target.WellUid,
                WellboreUid = job.Target.WellboreUid,
                LogUid      = job.Source.LogUid
            };
            var copyLogDataJob = new CopyLogDataJob
            {
                LogCurvesReference = new LogCurvesReference
                {
                    LogReference = job.Source,
                    Mnemonics    = log.LogData.MnemonicList.Split(",")
                },
                Target = referenceForNewLog
            };

            return(copyLogDataJob);
        }
コード例 #2
0
        public async Task CopyLog_VerifyLogDataIsCopied()
        {
            const string logUid          = "";
            var          sourceReference = new LogReferences
            {
                LogReferenceList = new[]
                {
                    new LogReference
                    {
                        WellUid     = "",
                        WellboreUid = "",
                        LogUid      = "",
                    }
                }
            };
            var targetReference = new LogReference
            {
                WellUid     = "",
                WellboreUid = "",
                LogUid      = logUid
            };

            await deleteLogsWorker.Execute(new DeleteLogObjectsJob { LogReferences = targetReference.AsSingletonList().ToArray() });

            var job = new CopyLogJob
            {
                Source = sourceReference,
                Target = new WellboreReference
                {
                    WellUid     = targetReference.WellUid,
                    WellboreUid = targetReference.WellboreUid
                }
            };

            await worker.Execute(job);

            var sourceLog = await GetLog(sourceReference.LogReferenceList.First());

            var targetLog = await GetLog(targetReference);

            var currentIndex = Index.Start(sourceLog);
            var endIndex     = await GetEndIndex(targetReference);

            while (currentIndex != endIndex)
            {
                var sourceLogData = await logObjectService.ReadLogData(sourceReference.LogReferenceList.FirstOrDefault()?.WellUid,
                                                                       sourceReference.LogReferenceList.FirstOrDefault()?.WellboreUid, logUid,
                                                                       new List <string>(sourceLog.LogData.MnemonicList.Split(",")), currentIndex.Equals(Index.Start(sourceLog)),
                                                                       currentIndex.GetValueAsString(), endIndex.ToString());

                var targetLogData = await logObjectService.ReadLogData(targetReference.WellUid, targetReference.WellboreUid, logUid,
                                                                       new List <string>(targetLog.LogData.MnemonicList.Split(",")), currentIndex.Equals(Index.Start(targetLog)),
                                                                       currentIndex.GetValueAsString(), endIndex.ToString());

                Assert.Equal(sourceLogData.EndIndex, targetLogData.EndIndex);
                Assert.Equal(sourceLogData.CurveSpecifications.Count(), targetLogData.CurveSpecifications.Count());
                Assert.Equal(sourceLogData.Data.Count(), targetLogData.Data.Count());

                currentIndex = Index.End(sourceLog, sourceLogData.EndIndex);
            }
        }