예제 #1
0
        /// <summary>Obtém acesso na API via Auth basic</summary>
        /// <param name="usuario">usuario</param>
        /// <param name="password">password</param>
        /// <returns>
        /// <c>string</c> Token da autenticação
        /// </returns>
        public async Task <string> LoginAsync(string usuario, string password)
        {
            string Token = "";
            var    grant = $"grant_type=password&username={usuario}&password={password}";

            var objectContent = new StringContent(grant, Encoding.UTF8, "application/x-www-form-urlencoded");

            await TryCatchAsync(async() =>
            {
                using (var client = BaseApi.HttpClient())
                {
                    var response = await client.PostAsync("api/authentication", objectContent);

                    var resultJson = await response.Content.ReadAsStringAsync();
                    var result     = JsonConvert.DeserializeObject <TokenModel>(resultJson);

                    if (response.IsSuccessStatusCode)
                    {
                        //Insere o Token Gerado pela API
                        Token = result.AccessToken;
                    }
                    else
                    {
                        throw new Exception(result.ErrorDescription);
                    }

                    //Retorno ao try catch
                    return(response);
                }
            });

            return(Token);
        }
예제 #2
0
        /// <summary>
        /// Cria um novo usuário
        /// </summary>
        /// <param name="usuario">Usuario a ser criado</param>
        public async Task CreateUsuarioAsync(Usuario usuario)
        {
            await TryCatchAsync(async() =>
            {
                using (var client = BaseApi.HttpClient())
                {
                    var json          = JsonConvert.SerializeObject(usuario);
                    var objectContent = new StringContent(json, Encoding.UTF8, "application/json");

                    var response = await client.PostAsync("api/usuario", objectContent);

                    //Retorno ao try catch
                    return(response);
                }
            });
        }
예제 #3
0
        /// <summary>
        /// Atualiza um Pedido
        /// </summary>
        /// <param name="pedido">Pedido a ser atualizado</param>
        public async Task UpdatePedidoAsync(Produto pedido)
        {
            await TryCatchAsync(async() =>
            {
                using (var client = BaseApi.HttpClient())
                {
                    var json          = JsonConvert.SerializeObject(pedido);
                    var objectContent = new StringContent(json, Encoding.UTF8, "application/json");

                    var response = await client.PutAsync("api/pedido", objectContent);

                    //Retorno ao try catch
                    return(response);
                }
            });
        }
예제 #4
0
        /// <summary>
        /// Retorna o usuário atualmente logado
        /// </summary>
        /// <returns>Objeto <c>Usuario</c></returns>
        public async Task <Usuario> GetUsuarioAsync()
        {
            Usuario result = null;

            await TryCatchAsync(async() =>
            {
                using (var client = BaseApi.HttpClient())
                {
                    var response = await client.GetAsync("api/usuario");

                    if (response.IsSuccessStatusCode)
                    {
                        var resultJSON = await response.Content.ReadAsStringAsync();
                        result         = JsonConvert.DeserializeObject <Usuario>(resultJSON);
                    }

                    //Retorno ao try catch
                    return(response);
                }
            });

            return(result);
        }
예제 #5
0
        /// <summary>
        /// Retorna todos os pedidos do usuário
        /// </summary>
        /// <returns>List <c>Pedido</c></returns>
        public async Task <List <Pedido> > GetPedidoAsync()
        {
            List <Pedido> result = new List <Pedido>();

            await TryCatchAsync(async() =>
            {
                using (var client = BaseApi.HttpClient())
                {
                    var response = await client.GetAsync("api/pedido");

                    if (response.IsSuccessStatusCode)
                    {
                        var resultJSON = await response.Content.ReadAsStringAsync();
                        result         = JsonConvert.DeserializeObject <List <Pedido> >(resultJSON);
                    }

                    //Retorno ao try catch
                    return(response);
                }
            });

            return(result);
        }