diff --git a/src/Services/RhDatabaseClient.cs b/src/Services/RhDatabaseClient.cs index 1776731..8ce88f1 100644 --- a/src/Services/RhDatabaseClient.cs +++ b/src/Services/RhDatabaseClient.cs @@ -1,6 +1,7 @@ using Newtonsoft.Json; using RhSolutions.AddIn; using RhSolutions.Models; +using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; @@ -14,22 +15,48 @@ namespace RhSolutions.Services public static async Task GetProduct(string line) { - string request = @"https://rh.cebotari.ru/api/search?query=" + line; + string request = string.Empty; - string response = await httpClient.GetStringAsync(request); - - var products = JsonConvert.DeserializeObject>(response); - - var product = products.FirstOrDefault(); - - if (product == null) + if (line.IsRehauSku()) { - return null; + request = @"https://rh.cebotari.ru/api/products/" + line; } + else { - return $"{product.ProductSku} {product.Name}"; + request = @"https://rh.cebotari.ru/api/search?query=" + line; } + + var response = await httpClient.GetAsync(request); + + try + { + response.EnsureSuccessStatusCode(); + string json = await response.Content.ReadAsStringAsync(); + var product = JsonConvert.DeserializeObject>(json) + .FirstOrDefault(); + + if (product == null) + { + return null; + } + else + { + if (line.IsRehauSku()) + { + return product.Name; + } + else + { + return $"{product.ProductSku} {product.Name}"; + } + } + } + catch + { + return $"Ошибка сервера {response.StatusCode}"; + } + } } } \ No newline at end of file