/// <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)); } }
/// <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)); }
/// <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 ))); }
/// <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)); }
/// <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)); }