////api/observations
        public CreateObservationResponse CreateObservation(PostObservationModel model)
        {
            if (String.IsNullOrWhiteSpace(model.Name))
                model.Name = "Fungi";

            var postUri = "observations?" + ConstructQueryString(model);

            var request = new RestRequest(postUri, Method.POST);
            var response = RestClient.Execute(request);

            var result = response.Content.ParseXML<XMLResponseModels.ApiResponse>();

            if (result.Errors != null)
            {
                return new CreateObservationResponse()
                {
                    Success = false,
                    Message = result.Errors.Items.FirstOrDefault()?.Details
                };
            }
            return new CreateObservationResponse()
            {
                Success = true,
                Message = result.Results?.Items?.FirstOrDefault()?.Id.ToString()
            };
        }
        private string ConstructQueryString(PostObservationModel model)
        {
            var queryParams = new NameValueCollection();
            queryParams.Add("api_key", ApiKey);
            queryParams.Add("date", model.Date);
            queryParams.Add("location", model.Location);
            queryParams.Add("notes", model.Notes);
            queryParams.Add("has_specimen", model.HasSpecimen);
            queryParams.Add("name", model.Name);
            queryParams.Add("vote", model.Confidence);
            queryParams.Add("log", "no");

            var items = new List<string>();

            foreach (string name in queryParams)
            {
                items.Add(string.Concat(name, "=", HttpUtility.UrlEncode(queryParams[name])));
            }

            return string.Join("&", items);
        }