public SpeciesCandidatesResult Post(Double latitude, Double longitude, Boolean multisample, byte[] imageBytes) { if (imageBytes == null) { return(new SpeciesCandidatesResult(new List <SpeciesCandidate>(), FailureStatus, "Valid image must be supplied.")); } try { var image = ImageConversion.ByteArrayToImage(imageBytes); var geographyPoint = GeographyPoint.Create(latitude, longitude); var speciesIdentityResult = _speciesIdentifier.GetMostLikelyIdentity(image, geographyPoint, true, multisample); var speciesInfo = speciesIdentityResult.LikelySpeciesInfo; var speciesCandidates = new List <SpeciesCandidate> { new SpeciesCandidate(speciesInfo.GetName(), speciesInfo.Taxonomy.GetGenus() + " " + speciesInfo.Taxonomy.GetSpecies(), speciesInfo.GetProbability()) }; return(new SpeciesCandidatesResult(speciesCandidates, SuccessStatus, "")); } catch (Exception e) { var message = "Failure while processing request: " + e.Message; return(new SpeciesCandidatesResult(new List <SpeciesCandidate>(), FailureStatus, message)); } }