Implement fast product search by sku

This commit is contained in:
Sergey Chebotar 2022-12-21 08:02:42 +03:00
parent c91f231892
commit 8ac3234473

View File

@ -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);
var products = JsonConvert.DeserializeObject<IEnumerable<Product>>(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<IEnumerable<Product>>(json)
.FirstOrDefault();
if (product == null)
{
return null;
}
else
{
if (line.IsRehauSku())
{
return product.Name;
}
else
{
return $"{product.ProductSku} {product.Name}";
}
}
}
catch
{
return $"Ошибка сервера {response.StatusCode}";
}
}
}
}