Exemplo n.º 1
0
        /// <inheritdoc />
        public async Task <ClarifaiResponse <T> > ExecuteAsync()
        {
            HttpResponseMessage response;
            string responseContent;

            try
            {
                response = await HttpRequest();

                responseContent = await response.Content.ReadAsStringAsync();
            }
            catch (HttpRequestException ex)
            {
                return(new ClarifaiResponse <T>(
                           new ClarifaiStatus(ClarifaiStatus.StatusType.NetworkError, 404,
                                              "HTTP request failed.", ex.Message),
                           HttpStatusCode.NotFound, "", default(T)));
            }

            dynamic jsonObject;

            try
            {
                jsonObject = JsonConvert.DeserializeObject <dynamic>(responseContent);
            }
            catch (JsonException ex)
            {
                return(new ClarifaiResponse <T>(
                           new ClarifaiStatus(ClarifaiStatus.StatusType.NetworkError,
                                              (int)response.StatusCode, "Server provided a malformed JSON response.",
                                              ex.Message),
                           response.StatusCode, responseContent, default(T)));
            }

            dynamic        statusJsonObject = jsonObject.status;
            ClarifaiStatus status           = ClarifaiStatus.Deserialize(statusJsonObject,
                                                                         response.StatusCode);

            if (status.Type == ClarifaiStatus.StatusType.Successful ||
                status.Type == ClarifaiStatus.StatusType.MixedSuccess)
            {
                var deserializedResponse = Unmarshaller(jsonObject);
                return(new ClarifaiResponse <T>(status, response.StatusCode, responseContent,
                                                deserializedResponse));
            }
            else
            {
                T deserializedResponse;
                try
                {
                    deserializedResponse = Unmarshaller(jsonObject);
                }
                catch (Exception)
                {
                    deserializedResponse = default(T);
                }
                return(new ClarifaiResponse <T>(status, response.StatusCode, responseContent,
                                                deserializedResponse));
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Deserializes the object out of a JSON dynamic object.
        /// </summary>
        /// <param name="jsonObject">the JSON dynamic object</param>
        /// <returns>the deserialized object</returns>
        public new static ClarifaiURLVideo Deserialize(dynamic jsonObject)
        {
            var positiveConcepts = new List <Concept>();
            var negativeConcepts = new List <Concept>();

            if (jsonObject.data.concepts != null)
            {
                foreach (dynamic c in jsonObject.data.concepts)
                {
                    var concept = Concept.Deserialize(c);
                    if (concept.Value == 0.0M)
                    {
                        negativeConcepts.Add(concept);
                    }
                    else
                    {
                        positiveConcepts.Add(concept);
                    }
                }
            }
            JObject metadata = null;

            if (jsonObject.data.metadata != null)
            {
                metadata = (JObject)jsonObject.data.metadata;
            }
            GeoPoint geoPoint = null;

            if (jsonObject.data.geo != null)
            {
                geoPoint = GeoPoint.Deserialize(jsonObject.data.geo);
            }
            DateTime?createdAt = null;

            if (jsonObject.created_at != null)
            {
                createdAt = (DateTime)jsonObject.created_at;
            }

            ClarifaiStatus status = null;

            if (jsonObject.status != null)
            {
                status = ClarifaiStatus.Deserialize(jsonObject.status);
            }

            return(new ClarifaiURLVideo(
                       id: (string)jsonObject.id,
                       url: (string)jsonObject.data.video.url,
                       positiveConcepts: positiveConcepts,
                       negativeConcepts: negativeConcepts,
                       metadata: metadata,
                       createdAt: createdAt,
                       geo: geoPoint,
                       status: status));
        }
Exemplo n.º 3
0
        /// <summary>
        /// Deserializes the object out of a JSON dynamic object.
        /// </summary>
        /// <param name="modelType">the model type</param>
        /// <param name="jsonObject">the JSON object</param>
        /// <returns>the deserialized object</returns>
        public static ClarifaiOutput Deserialize(ModelType modelType, dynamic jsonObject)
        {
            dynamic data = DeserializePredictions(modelType, jsonObject);

            return(new ClarifaiOutput(
                       (string)jsonObject.id,
                       ClarifaiStatus.Deserialize(jsonObject.status),
                       (DateTime)jsonObject.created_at,
                       jsonObject.input != null ? ClarifaiInput.Deserialize(jsonObject.input) : null,
                       data));
        }
        /// <summary>
        /// Deserializes the object out of a JSON dynamic object.
        /// </summary>
        /// <param name="modelType">the model type</param>
        /// <param name="jsonObject">the JSON object</param>
        /// <returns>the deserialized object</returns>
        public static ModerationOutput Deserialize(dynamic jsonObject)
        {
            List <Concept> data = DeserializePredictions(jsonObject);

            return(new ModerationOutput(
                       (string)jsonObject.id,
                       ClarifaiStatus.Deserialize(jsonObject.status),
                       (DateTime)jsonObject.created_at,
                       jsonObject.input != null ? ClarifaiInput.Deserialize(jsonObject.input) : null,
                       data,
                       Clarifai.Solutions.Moderation.DTOs.ModerationStatus.Deserialize(
                           jsonObject.moderation.status
                           )));
        }
Exemplo n.º 5
0
        /// <summary>
        /// Deserializes the object out of a JSON dynamic object.
        /// </summary>
        /// <param name="httpClient">the HTTP client</param>
        /// <param name="jsonObject">the JSON object</param>
        /// <returns>the deserialized object</returns>
        public static WorkflowResult Deserialize(IClarifaiHttpClient httpClient, dynamic jsonObject)
        {
            var status = ClarifaiStatus.Deserialize(jsonObject.status);
            var input  = ClarifaiInput.Deserialize(jsonObject.input);

            var predictions = new List <ClarifaiOutput>();

            foreach (dynamic output in jsonObject.outputs)
            {
                dynamic   model     = output.model;
                ModelType modelType = ModelType.DetermineModelType(
                    (string)model.output_info.type_ext);

                predictions.Add(ClarifaiOutput.Deserialize(httpClient, modelType, output));
            }

            return(new WorkflowResult(status, input, predictions));
        }
Exemplo n.º 6
0
        /// <summary>
        /// Deserializes the object out of a JSON dynamic object.
        /// </summary>
        /// <param name="jsonObject">the JSON dynamic object</param>
        /// <returns>the deserialized object</returns>
        public new static ClarifaiFileImage Deserialize(dynamic jsonObject)
        {
            var positiveConcepts = new List <Concept>();
            var negativeConcepts = new List <Concept>();

            if (jsonObject.data.concepts != null)
            {
                foreach (dynamic c in jsonObject.data.concepts)
                {
                    var concept = Concept.Deserialize(c);
                    if (concept.Value == 0.0M)
                    {
                        negativeConcepts.Add(concept);
                    }
                    else
                    {
                        positiveConcepts.Add(concept);
                    }
                }
            }
            JObject metadata = null;

            if (jsonObject.data.metadata != null)
            {
                metadata = (JObject)jsonObject.data.metadata;
            }
            GeoPoint geoPoint = null;

            if (jsonObject.data.geo != null)
            {
                geoPoint = GeoPoint.Deserialize(jsonObject.data.geo);
            }
            DateTime?createdAt = null;

            if (jsonObject.created_at != null)
            {
                createdAt = (DateTime)jsonObject.created_at;
            }

            var regions = new List <Region>();

            if (jsonObject.data != null && jsonObject.data.regions != null)
            {
                foreach (dynamic region in jsonObject.data.regions)
                {
                    regions.Add(Region.Deserialize(region));
                }
            }

            ClarifaiStatus status = null;

            if (jsonObject.status != null)
            {
                status = ClarifaiStatus.Deserialize(jsonObject.status);
            }

            return(new ClarifaiFileImage(
                       bytes: Convert.FromBase64String((string)jsonObject.data.image.base64),
                       id: (string)jsonObject.id,
                       positiveConcepts: positiveConcepts,
                       negativeConcepts: negativeConcepts,
                       metadata: metadata,
                       createdAt: createdAt,
                       geo: geoPoint,
                       regions: regions,
                       status: status));
        }