Ejemplo n.º 1
0
        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 }));
        }
Ejemplo n.º 3
0
        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;
            }
        }
Ejemplo n.º 4
0
        /// <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";
        }