blob: 956206d09dbe19e19579b42b40bf74e5889e5cae (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
using System.Data;
using System.Diagnostics;
using Dapper;
namespace CrupestApi.Commons.Crud;
public static class DynamicParametersExtensions
{
private static Random random = new Random();
private const string chars = "abcdefghijklmnopqrstuvwxyz";
public static string GenerateRandomKey(int length)
{
lock (random)
{
var result = new string(Enumerable.Repeat(chars, length)
.Select(s => s[random.Next(s.Length)]).ToArray());
return result;
}
}
public static string GenerateRandomParameterName(DynamicParameters parameters)
{
var parameterName = GenerateRandomKey(10);
int retryTimes = 1;
while (parameters.ParameterNames.Contains(parameterName))
{
retryTimes++;
Debug.Assert(retryTimes <= 100);
parameterName = GenerateRandomKey(10);
}
return parameterName;
}
public static string AddRandomNameParameter(this DynamicParameters parameters, object? value)
{
var parameterName = GenerateRandomParameterName(parameters);
parameters.Add(parameterName, value);
return parameterName;
}
}
|