/// <summary> /// Submit a sample to Indicia Warehouse /// Required post parameters: "submission" : {JSON containing sample} /// </summary> /// <returns>Success, or JSON from Indicia Warehouse describing validation failures</returns> public dynamic SaveData() { Uri URL = new Uri(_serviceURI, SAVEDATA); _tokenType = IndiciaTokenType.write; _method = Method.POST; BuildRequest(URL); return MakeRequest(); }
/// <summary> /// Get possible matches from taxon list /// Example get parameters: "taxon_list_id": int (required) /// "limit": "100" /// "q", "fox" /// "qfield", "searchterm" /// "query", "{\"where\":[\"(simplified='t' or simplified is null) AND (preferred='t' or language_iso<>'lat')\"]} /// More information in Indicia docs /// </summary> /// <returns>List of TaxonSearchItem</returns> public List<TaxonSearchItem> GetTaxaSearchList() { Uri URL = new Uri(_serviceURI, TAXALIST); _tokenType = IndiciaTokenType.read; BuildRequest(URL); var jsonResponse = MakeRequest(); return jsonResponse.ToObject<List<TaxonSearchItem>>(); }
/// <summary> /// Get Term List. List of options for Indicia Survey question /// Required get parameters: termlist_id: int /// </summary> /// <returns>List of TermItem</returns> public List<TermItem> GetTermList() { Uri URL = new Uri(_serviceURI, TERMLIST); _tokenType = IndiciaTokenType.read; BuildRequest(URL); var jsonResponse = MakeRequest(); List<TermItem> tmp = jsonResponse.ToObject<List<TermItem>>(); return tmp.OrderBy(t => t.SortOrder).ToList(); }
/// <summary> /// Gets attribute list for Indicia Survey from Indicia Warehouse /// Required get parameters: restrict_to_survey_id: int id /// </summary> /// <returns>List of SurveyAttribute</returns> public List<SurveyAttribute> GetSurvey() { List<SurveyAttribute> attrs = new List<SurveyAttribute>(); _tokenType = IndiciaTokenType.read; //samples Uri URL = new Uri(_serviceURI, SAMPLEATTRIBUTELIST); BuildRequest(URL); var jsonResponse = MakeRequest(); List<SurveyAttribute> sa = jsonResponse.ToObject<List<SurveyAttribute>>(); sa.ForEach(a => a.AttributeType = SurveyAttributeType.sample); attrs.AddRange(sa); //occurences URL = new Uri(_serviceURI, OCCURRENCEATTRIBUTELIST); BuildRequest(URL); jsonResponse = MakeRequest(); List<SurveyAttribute> sa2 = jsonResponse.ToObject<List<SurveyAttribute>>(); sa2.ForEach(a => a.AttributeType = SurveyAttributeType.occurrence); attrs.AddRange(sa2); //locations URL = new Uri(_serviceURI, LOCATIONATTRIBUTELIST); BuildRequest(URL); jsonResponse = MakeRequest(); List<SurveyAttribute> sa3 = jsonResponse.ToObject<List<SurveyAttribute>>(); sa3.ForEach(a => a.AttributeType = SurveyAttributeType.location); attrs.AddRange(sa3); return attrs; }