Add t-pieces request filter. Exclude CleanUp method to RequestModifier class.

This commit is contained in:
Sergey Chebotar 2021-12-08 09:44:23 +03:00
parent adf66ad2a2
commit c42e3e604d
3 changed files with 62 additions and 13 deletions

View File

@ -96,6 +96,7 @@
<Reference Include="WindowsBase" /> <Reference Include="WindowsBase" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Source\Assistant\RequestModifier.cs" />
<Compile Include="Source\DataExport\RibbonController.cs" /> <Compile Include="Source\DataExport\RibbonController.cs" />
<Compile Include="Source\Assistant\HttpClientUtil.cs" /> <Compile Include="Source\Assistant\HttpClientUtil.cs" />
<Compile Include="Source\Assistant\StoreResponse.cs" /> <Compile Include="Source\Assistant\StoreResponse.cs" />

View File

@ -4,7 +4,6 @@ using System;
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Text;
namespace Rehau.Sku.Assist namespace Rehau.Sku.Assist
{ {
@ -35,7 +34,7 @@ namespace Rehau.Sku.Assist
UriBuilder baseUri = new UriBuilder("https", "shop-rehau.ru"); UriBuilder baseUri = new UriBuilder("https", "shop-rehau.ru");
baseUri.Path = "/catalogsearch/result/index/"; baseUri.Path = "/catalogsearch/result/index/";
string cleanedRequest = request._CleanRequest(); string cleanedRequest = request.CleanRequest();
switch (AddIn.responseOrder) switch (AddIn.responseOrder)
{ {
@ -58,16 +57,5 @@ namespace Rehau.Sku.Assist
return baseUri.Uri; return baseUri.Uri;
} }
private static string _CleanRequest(this string input)
{
return new StringBuilder(input)
.Replace("+", " plus ")
.Replace("РХ", "")
.Replace("º", " ")
.Replace(".", " ")
.Replace("Ø", " ")
.ToString();
}
} }
} }

View File

@ -0,0 +1,60 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace Rehau.Sku.Assist
{
public static class RequestModifier
{
public static string CleanRequest(this string input)
{
string replace = new StringBuilder(input)
.Replace("+", " plus ")
.Replace("РХ", "")
.Replace("º", " ")
.Replace(".", " ")
.Replace("Ø", " ")
.ToString();
return replace._tPiece();
}
private static string _tPiece(this string line)
{
if (!line.ToLower().Contains("тройник"))
return line;
string m = Regex.Match(line, @"\d{2}.\d{2}.\d{2}").Value;
int endFaceA = int.Parse($"{m[0]}{m[1]}");
int side = int.Parse($"{m[3]}{m[4]}");
int endFaceB = int.Parse($"{m[6]}{m[7]}");
int[] endFaces = new[] { endFaceA, endFaceB };
List<string> additions = new List<string>();
if (endFaces.All(x => x < side))
additions.Add("увеличенный боковой");
else
{
if (new[] { endFaceA, endFaceB, side }.Distinct().Count() == 1)
additions.Add("равнопроходной");
else
additions.Add("уменьшенный");
if (endFaces.Any(x => x > side))
additions.Add("боковой");
if (endFaceA != endFaceB)
additions.Add("торцевой");
}
string piece = $" {endFaces.Max()}-{side}-{endFaces.Min()} ";
string replace = string.Join(" ", additions) + piece;
return line.Replace(m, replace);
}
}
}