aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Services/RhDatabaseClient.cs43
1 files changed, 35 insertions, 8 deletions
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<object> GetProduct(string line)
{
- string request = @"https://rh.cebotari.ru/api/search?query=" + line;
+ string request = string.Empty;
- string response = await httpClient.GetStringAsync(request);
+ if (line.IsRehauSku())
+ {
+ request = @"https://rh.cebotari.ru/api/products/" + line;
+ }
- var products = JsonConvert.DeserializeObject<IEnumerable<Product>>(response);
+ else
+ {
+ request = @"https://rh.cebotari.ru/api/search?query=" + line;
+ }
- var product = products.FirstOrDefault();
+ var response = await httpClient.GetAsync(request);
- if (product == null)
+ try
{
- return null;
+ response.EnsureSuccessStatusCode();
+ string json = await response.Content.ReadAsStringAsync();
+ var product = JsonConvert.DeserializeObject<IEnumerable<Product>>(json)
+ .FirstOrDefault();
+
+ if (product == null)
+ {
+ return null;
+ }
+ else
+ {
+ if (line.IsRehauSku())
+ {
+ return product.Name;
+ }
+ else
+ {
+ return $"{product.ProductSku} {product.Name}";
+ }
+ }
}
- else
+ catch
{
- return $"{product.ProductSku} {product.Name}";
+ return $"Ошибка сервера {response.StatusCode}";
}
+
}
}
} \ No newline at end of file