public async Task <IEnumerable <Risk> > GetRisks(string wellUid, string wellboreUid) { var query = RiskQueries.GetWitsmlRiskByWellbore(wellUid, wellboreUid); var result = await WitsmlClient.GetFromStoreAsync(query, new OptionsIn(ReturnElements.All)); return(result.Risks.Select(risk => new Risk { Name = risk.Name, NameWellbore = risk.NameWellbore, UidWellbore = risk.UidWellbore, NameWell = risk.NameWell, UidWell = risk.UidWell, Uid = risk.Uid, Type = risk.Type, Category = risk.Category, SubCategory = risk.SubCategory, ExtendCategory = risk.ExtendCategory, AffectedPersonnel = risk.AffectedPersonnel, MdHoleStart = risk.MdHoleStart?.Value, MdHoleEnd = risk.MdHoleEnd?.Value, MdBitStart = risk.MdBitStart?.Value, MdBitEnd = risk.MdBitEnd?.Value, SourceName = risk.CommonData.SourceName, DiaHole = risk.DiaHole, SeverityLevel = risk.SeverityLevel, ProbabilityLevel = risk.ProbabilityLevel }).OrderBy(risk => risk.Name)); }
public override async Task <(WorkerResult, RefreshAction)> Execute(DeleteRiskJob job) { var wellUid = job.RiskReference.WellUid; var wellboreUid = job.RiskReference.WellboreUid; var uid = job.RiskReference.Uid; var deleteRequest = RiskQueries.DeleteRiskQuery(wellUid, wellboreUid, uid); var result = await witsmlClient.DeleteFromStoreAsync(deleteRequest); if (result.IsSuccessful) { Log.Information("{JobType} - Job successful", GetType().Name); var refreshAction = new RefreshWell(witsmlClient.GetServerHostname(), wellUid, RefreshType.Remove); var workerResult = new WorkerResult(witsmlClient.GetServerHostname(), true, $"Deleted well with uid ${wellUid}"); return(workerResult, refreshAction); } Log.Error("Failed to delete risk. WellUid: {WellUid}", wellUid); var query = RiskQueries.QueryById(wellUid, wellboreUid, uid); var queryResult = await witsmlClient.GetFromStoreAsync(query, new OptionsIn(ReturnElements.IdOnly)); EntityDescription description = null; var risk = queryResult.Risks.FirstOrDefault(); if (risk != null) { description = new EntityDescription { ObjectName = risk.Name }; } return(new WorkerResult(witsmlClient.GetServerHostname(), false, "Failed to delete risk", result.Reason, description), null); }
private async Task WaitUntilRiskHasBeenCreated(Risk risk) { var isCreated = false; var query = RiskQueries.QueryById(risk.UidWell, risk.UidWellbore, risk.Uid); var maxRetries = 30; while (!isCreated) { if (--maxRetries == 0) { throw new InvalidOperationException($"Not able to read newly created Risk with name {risk.Name} (id={risk.Uid})"); } Thread.Sleep(1000); var riskResult = await witsmlClient.GetFromStoreAsync(query, new OptionsIn(ReturnElements.IdOnly)); isCreated = riskResult.Risks.Any(); } }