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