예제 #1
0
        public ActionResult <DecomporNumeroResponse> DecomporNumero(long Request)
        {
            try
            {
                isValid(Request);

                _response = new DecomporNumeroResponse();

                Funcoes.DecomporNumero(Request, _response.divisores, _response.divisoresPrimos);

                return(_apiResponse.ResponseRet <DecomporNumeroResponse>(StatusCode.OK, _response));
            }
            catch (ApiException ex)
            {
                return(_apiResponse.ResponseRet <DecomporNumeroResponse>(ex));
            }
            catch (Exception ex)
            {
                return(_apiResponse.ResponseRetWithoutEnumerable(ex));
            }
            finally
            {
                Dispose();
            }
        }
        public static void DecomporNumero(long numero, ref string divisores, ref string divisoresPrimos)
        {
            var    builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json");
            var    config  = new ConfigurationBuilder().AddJsonFile("appsettings.json", true, true).Build();
            string Url     = (config["URLAPI"] == null || config["URLAPI"] == "") ? "https://localhost:44324/API/v1/DecomporNumero/" : config["URLAPI"].Trim();
            DecomporNumeroResponse retorno = new DecomporNumeroResponse();

            using (HttpClient client = new HttpClient()
            {
                BaseAddress = new Uri(Url)
            })
            {
                HttpResponseMessage result = client.GetAsync($"{numero}").Result;

                result.EnsureSuccessStatusCode();

                if (result.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    throw new Exception($"StatusCode: {result.StatusCode} | RequestMessage: {result.RequestMessage}");
                }

                string resultRequest = result.Content.ReadAsStringAsync().Result;

                retorno = JsonConvert.DeserializeObject <DecomporNumeroResponse>(resultRequest);
            }

            foreach (var item in retorno.divisores)
            {
                divisores += item.ToString() + ";";
            }
            foreach (var item in retorno.divisoresPrimos)
            {
                divisoresPrimos += item.ToString() + ";";
            }
        }
예제 #3
0
 public void Dispose()
 {
     if (_apiResponse != null)
     {
         _apiResponse = null;
     }
     if (_response != null)
     {
         _response = null;
     }
 }