protected async Task <ProgressInfo> JobProgressRequest(ForgeObjectInfo item) { try { DerivativesApi md = new DerivativesApi(); md.Configuration.AccessToken = _accessToken; string urn = MainWindow.URN(item.Properties.bucketKey, item); ApiResponse <dynamic> response = await md.GetManifestAsyncWithHttpInfo(urn); MainWindow.httpErrorHandler(response, "Initializing..."); item.Manifest = response.Data; int pct = 100; if (response.Data.progress != "complete") { try { string st = response.Data.progress; Regex rgx = new Regex("[^0-9]*"); st = rgx.Replace(st, ""); pct = int.Parse(st); } catch (Exception) { pct = 0; } } string msg = response.Data.status; return(new ProgressInfo(pct, msg)); } catch (Exception /*ex*/) { return(new ProgressInfo(0, "Initializing...")); } }
public async Task <IActionResult> GetManifest([FromQuery] string urn) { DerivativesApi derivative = new DerivativesApi(); dynamic result = await derivative.GetManifestAsyncWithHttpInfo(urn); return(Ok(new { Status = (string)result.Data.status, Progress = (string)result.Data.progress })); }
private async Task RequestManifest(ForgeObjectInfo item) { try { item.ManifestRequested = StateEnum.Busy; DerivativesApi md = new DerivativesApi(); md.Configuration.AccessToken = accessToken; string urn = URN((string)BucketsInRegion.SelectedItem, item); ApiResponse <dynamic> response = await md.GetManifestAsyncWithHttpInfo(urn); httpErrorHandler(response, "Failed to get manifest"); item.Manifest = response.Data; } catch (Exception /*ex*/) { item.Manifest = null; } finally { item.ManifestRequested = StateEnum.Idle; } }
/// <summary> /// Translate object by safe urn from object. /// </summary> /// <param name="safeUrn">Object's, that will be translated, URN</param> /// <returns>Nothing...</returns> public async Task TranslateObject(string safeUrn) { List <JobPayloadItem> outputs = new List <JobPayloadItem>() { new JobPayloadItem( JobPayloadItem.TypeEnum.Svf, new List <JobPayloadItem.ViewsEnum>() { JobPayloadItem.ViewsEnum._2d, JobPayloadItem.ViewsEnum._3d }) }; JobPayload job; job = new JobPayload(new JobPayloadInput(safeUrn), new JobPayloadOutput(outputs)); api = new DerivativesApi(); api.Configuration.AccessToken = this.token.AccessToken; dynamic jobPosted = await api.TranslateAsync(job); Dictionary <string, dynamic> callBackData = JsonConvert.DeserializeObject <Dictionary <string, dynamic> >(jobPosted.ToString()); this.URN = callBackData["urn"].ToString(); string status = callBackData["result"]; while (status == "inprogress" || status == "pending" || status == "created") { dynamic resp = await api.GetManifestAsyncWithHttpInfo(this.URN); JObject jObject = JsonConvert.DeserializeObject <JObject>(resp.Data.ToString()); status = jObject["status"].ToString(); } if (status == "success") { Completed?.Invoke(null, new EventArgs()); } else if (status == "failed" || status == "timeout") { Failed?.Invoke(null, new EventArgs()); } this.IsTranslated = status == "success"; }