public async Task <string> SearchCompaniesAndPersons(SearchTypes type, FindCompaniesAndPersonsModel find)
        {
            var queryList = new List <string>();

            if (!string.IsNullOrWhiteSpace(find.what))
            {
                queryList.Add("what=" + find.what.Trim());
            }
            if (!string.IsNullOrWhiteSpace(find.where))
            {
                queryList.Add("where=" + find.where.Trim());
            }

            if (find.pageNumber < 1)
            {
                find.pageNumber = 1;
            }
            queryList.Add("page.number=" + find.pageNumber.ToString());

            if (find.pageSize < 1)
            {
                find.pageSize = 1;
            }
            queryList.Add("page.size=" + find.pageSize.ToString());

            var query = string.Join("&", queryList);

            if (query == "")
            {
                throw new Exception("Search parameters are missing");
            }

            query = type.ToString() + "?" + query;

            var client = GetClient();

            HttpResponseMessage response = await client.GetAsync("https://api.hitta.se/publicsearch/v1/" + query);

            if (response.IsSuccessStatusCode)
            {
                return(await response.Content.ReadAsStringAsync());
            }
            else
            {
                return("");
            }
        }
示例#2
0
        public async Task <IActionResult> SearchPersons([FromQuery] FindCompaniesAndPersonsModel model)
        {
            try
            {
                var client = new Client();
                var res    = await client.SearchCompaniesAndPersons(SearchTypes.persons, model);

                if (string.IsNullOrWhiteSpace(res))
                {
                    return(NoContent());
                }
                else
                {
                    return(Ok(res));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }