using Microsoft.AspNetCore.Http.Extensions; using System.Text; using System.Text.RegularExpressions; namespace RhSolutions.Api.Services { public class TPieceQueryModifier : IProductQueryModifier { private readonly string pattern = @"16|20|25|32|40|50|63"; public bool TryQueryModify(IQueryCollection collection, out QueryString queryString) { queryString = QueryString.Empty; var query = collection["query"].ToString(); if (string.IsNullOrEmpty(query)) { return false; } var matches = Regex.Matches(query, pattern); StringBuilder sb = new(); sb.Append("Тройник RAUTITAN -PLATINUM"); if (matches.Count == 1) { sb.Append($" {matches.First().Value}-{matches.First().Value}-{matches.First().Value}"); } else if (matches.Count >= 3) { sb.Append($" {matches[0].Value}-{matches[1].Value}-{matches[2].Value}"); } else { return false; } QueryBuilder qb = new() { { "query", sb.ToString() } }; queryString = qb.ToQueryString(); return true; } } }