blob: 854f55ee7758395f769af3eade12844234436347 [file] [log] [blame]
namespace Casbin.Model;
public static class Request
{
public static bool SupportGeneric(int count)
{
return count is >= 1 and <= 14;
}
public static RequestValues<T> CreateValues<T>(T value)
{
return new RequestValues<T>(value);
}
public static RequestValues<T1, T2> CreateValues<T1, T2>(T1 value1, T2 value2)
{
return new RequestValues<T1, T2>(value1, value2);
}
public static RequestValues<T1, T2, T3> CreateValues<T1, T2, T3>(T1 value1, T2 value2, T3 value3)
{
return new RequestValues<T1, T2, T3>(value1, value2, value3);
}
public static RequestValues<T1, T2, T3, T4> CreateValues<T1, T2, T3, T4>(T1 value1, T2 value2, T3 value3,
T4 value4)
{
return new RequestValues<T1, T2, T3, T4>(value1, value2, value3,
value4);
}
public static RequestValues<T1, T2, T3, T4, T5> CreateValues<T1, T2, T3, T4, T5>(T1 value1, T2 value2, T3 value3,
T4 value4, T5 value5)
{
return new RequestValues<T1, T2, T3, T4, T5>(value1, value2, value3,
value4, value5);
}
public static RequestValues<T1, T2, T3, T4, T5, T6> CreateValues<T1, T2, T3, T4, T5, T6>(T1 value1, T2 value2,
T3 value3,
T4 value4, T5 value5, T6 value6)
{
return new RequestValues<T1, T2, T3, T4, T5, T6>(value1, value2, value3,
value4, value5, value6);
}
public static RequestValues<T1, T2, T3, T4, T5, T6, T7> CreateValues<T1, T2, T3, T4, T5, T6, T7>(T1 value1,
T2 value2,
T3 value3,
T4 value4, T5 value5, T6 value6, T7 value7)
{
return new RequestValues<T1, T2, T3, T4, T5, T6, T7>(value1, value2, value3,
value4, value5, value6, value7);
}
public static RequestValues<T1, T2, T3, T4, T5, T6, T7, T8> CreateValues<T1, T2, T3, T4, T5, T6, T7, T8>(T1 value1,
T2 value2,
T3 value3,
T4 value4, T5 value5, T6 value6, T7 value7, T8 value8)
{
return new RequestValues<T1, T2, T3, T4, T5, T6, T7, T8>(value1, value2, value3,
value4, value5, value6, value7, value8);
}
public static RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9> CreateValues<T1, T2, T3, T4, T5, T6, T7, T8, T9>(
T1 value1,
T2 value2, T3 value3,
T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9)
{
return new RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9>(value1, value2, value3,
value4, value5, value6, value7, value8, value9);
}
public static RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> CreateValues<T1, T2, T3, T4, T5, T6, T7, T8,
T9, T10>(
T1 value1, T2 value2, T3 value3,
T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10)
{
return new RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(value1, value2, value3,
value4, value5, value6, value7, value8, value9, value10);
}
public static RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> CreateValues<T1, T2, T3, T4, T5, T6, T7,
T8, T9, T10,
T11>(T1 value1, T2 value2, T3 value3,
T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11)
{
return new RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(value1, value2, value3,
value4, value5, value6, value7, value8, value9, value10, value11);
}
public static RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> CreateValues<T1, T2, T3, T4, T5, T6,
T7, T8, T9,
T10, T11, T12>(T1 value1, T2 value2, T3 value3,
T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12)
{
return new RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(value1, value2, value3,
value4, value5, value6, value7, value8, value9, value10, value11, value12);
}
public static RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> CreateValues<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13)
{
return new RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13);
}
public static RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> CreateValues<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, T13 value13, T14 value14)
{
return new RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>(value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13, value14);
}
public static ListRequestValues<T> CreateValues<T>(params T[] value)
{
return new ListRequestValues<T>(value);
}
public static bool TryGetStringKey<TRequest>(TRequest requestValues, out string key) where TRequest : IRequestValues
{
if (SupportGeneric(requestValues.Count) is false)
{
key = null;
return false;
}
switch (requestValues.Count)
{
case 1:
if (requestValues is not RequestValues<string> value)
{
key = null;
return false;
}
key = value.Value1;
return true;
case 2:
if (requestValues is not RequestValues<string, string> values2)
{
key = null;
return false;
}
key = string.Concat(values2.Value1, "$$", values2.Value2);
return true;
case 3:
if (requestValues is not RequestValues<string, string, string> values3)
{
key = null;
return false;
}
key = string.Concat(values3.Value1, "$$", values3.Value2, "$$", values3.Value3);
return true;
case 4:
if (requestValues is not RequestValues<string, string, string, string> values4)
{
key = null;
return false;
}
key = string.Concat(values4.Value1, "$$", values4.Value2, "$$", values4.Value3, "$$", values4.Value4);
return true;
}
key = null;
return false;
}
}