This commit is contained in:
2020-05-18 22:42:30 +00:00
parent aabb6fb151
commit d541df8b4c

View File

@@ -1,4 +1,3 @@
using System;
using System.Threading.Tasks;
using System.Threading;
using System.Collections.Generic;
@@ -7,52 +6,30 @@ namespace raven_integration
{
public class CredRepo
{
static SemaphoreSlim semaphoreSlim = new SemaphoreSlim(1,1);
// private readonly object valueLock = new object();
static SemaphoreSlim semaphoreSlim = new SemaphoreSlim(1, 1);
private static Dictionary<string, string> authDict = new Dictionary<string, string>();
public CredRepo()
{
}
public CredRepo() { }
public static async Task<string> GetTokenAsync(string login, string password = null)
{
await semaphoreSlim.WaitAsync();
try{
try
{
if (password == null)
password = login;
if (!authDict.ContainsKey(login))
{
dynamic creds = new JObject();
creds.login = login;
creds.password = password;
ApiResponse a = await Util.PostAsync("auth", null, creds.ToString());
//Put this in when having concurrency issue during auth and old style dl token creation during login
// ValidateDataReturnResponseOk(a);
authDict[login] = a.ObjectResponse["data"]["token"].Value<string>();
}
return authDict[login];
}
finally{
semaphoreSlim.Release();
finally
{
semaphoreSlim.Release();
}
}
// public uint GetNext()
// {
// lock (valueLock)
// {
// currentValue += 1;
// if (currentValue == 0)
// currentValue += 1;
// return currentValue;
// }
// }
}
}