private static WitsmlLogs CreateLogQuery(CreateLogJob job, WitsmlWellbore targetWellbore) { var indexType = job.LogObject.IndexCurve == IndexType.Depth.ToString() ? IndexType.Depth : IndexType.Time; var unit = indexType == IndexType.Depth ? DepthUnit.Meter.ToString() : Unit.TimeUnit.ToString(); return(new WitsmlLogs { Logs = new WitsmlLog { UidWell = targetWellbore.UidWell, NameWell = targetWellbore.NameWell, UidWellbore = targetWellbore.Uid, NameWellbore = targetWellbore.Name, Uid = job.LogObject.Uid, Name = job.LogObject.Name, IndexType = indexType == IndexType.Depth ? WitsmlLog.WITSML_INDEX_TYPE_MD : WitsmlLog.WITSML_INDEX_TYPE_DATE_TIME, IndexCurve = new WitsmlIndexCurve() { Value = indexType.ToString() }, LogCurveInfo = new WitsmlLogCurveInfo { Uid = Guid.NewGuid().ToString(), Mnemonic = indexType.ToString(), Unit = unit, TypeLogData = indexType == IndexType.Depth ? WitsmlLogCurveInfo.LOG_DATA_TYPE_DOUBLE : WitsmlLogCurveInfo.LOG_DATA_TYPE_DATETIME }.AsSingletonList() }.AsSingletonList() }); }
public async Task CreateLog_TimeIndexed() { var job = new CreateLogJob { LogObject = new LogObject { Uid = Guid.NewGuid().ToString(), Name = "Test time", WellUid = WELL_UID, WellboreUid = WELLBORE_UID, IndexCurve = "Time" } }; await worker.Execute(job); }
public async Task <(WorkerResult, RefreshAction)> Execute(CreateLogJob job) { var targetWellbore = await GetWellbore(witsmlClient, job.LogObject); var copyLogQuery = CreateLogQuery(job, targetWellbore); var createLogResult = await witsmlClient.AddToStoreAsync(copyLogQuery); if (!createLogResult.IsSuccessful) { var errorMessage = "Failed to create log."; Log.Error("{ErrorMessage}. Target: UidWell: {TargetWellUid}, UidWellbore: {TargetWellboreUid}.", errorMessage, job.LogObject.WellUid, job.LogObject.WellboreUid); return(new WorkerResult(witsmlClient.GetServerHostname(), false, errorMessage, createLogResult.Reason), null); } Log.Information("{JobType} - Job successful. Log object created", GetType().Name); var refreshAction = new RefreshWellbore(witsmlClient.GetServerHostname(), job.LogObject.WellUid, job.LogObject.WellboreUid, RefreshType.Update); var workerResult = new WorkerResult(witsmlClient.GetServerHostname(), true, $"Log object {job.LogObject.Name} created for {targetWellbore.Name}"); return(workerResult, refreshAction); }