Initial commit - Auth.RCL

This commit is contained in:
2026-08-05 21:16:00 +03:00
commit 062ff0146a
231 changed files with 15819 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Generic.Contracts.Generics;
namespace Auth.RCL.Services.Utils
{
public class QueryBuilder
{
private readonly StringBuilder _builder;
public QueryBuilder()
{
_builder = new StringBuilder();
}
public QueryBuilder AddBase(string baseString)
{
_builder.Insert(0, baseString);
return this;
}
public QueryBuilder AddPagination(Pagination pagination)
{
if (pagination != null)
{
AppendParameter("currentPage", pagination.CurrentPage.Value);
AppendParameter("pageSize", pagination.PageSize.Value);
}
return this;
}
public QueryBuilder AddSort(SortModel sort)
{
if (sort != null && !string.IsNullOrEmpty(sort.SortBy))
{
AppendParameter("Column", sort.SortBy);
AppendParameter("sortDirection", sort.SortDirection.ToString());
}
return this;
}
public QueryBuilder AddModelProperties<TModel>(TModel model)
{
if (model == null)
return this;
var properties = typeof(TModel).GetProperties();
foreach (var prop in properties)
{
var value = prop.GetValue(model)?.ToString();
if (!string.IsNullOrEmpty(value))
{
AppendParameter(prop.Name.ToLower(), value);
}
}
return this;
}
private void AppendParameter(string key, string value)
{
if (_builder.Length > 0)
_builder.Append('&');
_builder.Append($"{Uri.EscapeDataString(key)}={Uri.EscapeDataString(value)}");
}
private void AppendParameter(string key, int value)
{
AppendParameter(key, value.ToString());
}
public override string ToString() => _builder.ToString();
}
}