Implement fast product search by sku
This commit is contained in:
parent
c91f231892
commit
8ac3234473
@ -1,6 +1,7 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using RhSolutions.AddIn;
|
using RhSolutions.AddIn;
|
||||||
using RhSolutions.Models;
|
using RhSolutions.Models;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
@ -14,22 +15,48 @@ namespace RhSolutions.Services
|
|||||||
|
|
||||||
public static async Task<object> GetProduct(string line)
|
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())
|
||||||
|
|
||||||
var products = JsonConvert.DeserializeObject<IEnumerable<Product>>(response);
|
|
||||||
|
|
||||||
var product = products.FirstOrDefault();
|
|
||||||
|
|
||||||
if (product == null)
|
|
||||||
{
|
{
|
||||||
return null;
|
request = @"https://rh.cebotari.ru/api/products/" + line;
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
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}";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user