Beispiel #1
0
        private async void ris_Click(object sender, EventArgs e)
        {
            ProdutoIderis updatedProduct;
            var           selectedRowsCount = dg.SelectedRows.Count;

            foreach (DataGridViewRow row in dg.SelectedRows)
            {
                row.DefaultCellStyle.BackColor = Color.DarkGray;
            }

            foreach (DataGridViewRow item in dg.SelectedRows)
            {
                ProdutoIderis productToUpdate = null;
                try
                {
                    productToUpdate = (ProdutoIderis)item.DataBoundItem;
                    updatedProduct  = await IderisDataHandler.PutProduct(productToUpdate);

                    item.DefaultCellStyle.BackColor = Color.Green;

                    if (selectedRowsCount > 10)
                    {
                        await Task.Delay(6000); //Implementar uma fila para lidar com a questão do limite de 10 calls por minuto.
                    }
                }
                catch (Exception ex)
                {
                    item.DefaultCellStyle.BackColor = Color.Red;
                    item.Cells[0].ToolTipText       = $"Erro ao atualizar {productToUpdate.Id} - {productToUpdate.Titulo}: {ex.Message}";
                }
            }
        }
Beispiel #2
0
        private static IEnumerable <ProdutoIderis> Deserialize(string jsonString)
        {
            List <ProdutoIderis> products = new List <ProdutoIderis>();
            JObject        retornoIderis  = JObject.Parse(jsonString);
            IList <JToken> results        = retornoIderis.SelectToken("result").ToList();

            foreach (JToken result in results)
            {
                var jsSerializer = new JsonSerializer();
                jsSerializer.Culture = CultureInfo.GetCultureInfo("pt-BR"); //Necesssário para serializar decimais corretamente.
                ProdutoIderis produto = result.ToObject <ProdutoIderis>(jsSerializer);
                products.Add(produto);
            }
            return(products);
        }
Beispiel #3
0
        public static async Task <ProdutoIderis> PutProduct(ProdutoIderis product)
        {
            string url = $"http://api.ideris.com.br/produto";
            var    productJsonString = JsonConvert.SerializeObject(product);
            var    content           = new StringContent(productJsonString, Encoding.UTF8, "application/json");

            using HttpResponseMessage response = await ApiHelper.ApiClient.PutAsync(url, content);

            if (response.IsSuccessStatusCode)
            {
                string jsonString = await response.Content.ReadAsStringAsync();

                var products = Deserialize(jsonString);
                return(products.FirstOrDefault());
            }
            else
            {
                var responseMessage = await response.Content.ReadAsStringAsync();

                throw new Exception(responseMessage);
            }
        }