app id service

This commit is contained in:
Kyle Spearrin 2019-03-28 16:45:00 -04:00
parent 6d22888bf6
commit 574c826036
2 changed files with 48 additions and 0 deletions

View File

@ -0,0 +1,10 @@
using System.Threading.Tasks;
namespace Bit.Core.Abstractions
{
public interface IAppIdService
{
Task<string> GetAppIdAsync();
Task<string> GetAnonymousAppIdAsync();
}
}

View File

@ -0,0 +1,38 @@
using Bit.Core.Abstractions;
using System;
using System.Threading.Tasks;
namespace Bit.Core.Services
{
public class AppIdService
{
private readonly IStorageService _storageService;
public AppIdService(IStorageService storageService)
{
_storageService = storageService;
}
public Task<string> GetAppIdAsync()
{
return MakeAndGetAppIdAsync("appId");
}
public Task<string> GetAnonymousAppIdAsync()
{
return MakeAndGetAppIdAsync("anonymousAppId");
}
private async Task<string> MakeAndGetAppIdAsync(string key)
{
var existingId = await _storageService.GetAsync<string>(key);
if(existingId != null)
{
return existingId;
}
var guid = Guid.NewGuid().ToString();
await _storageService.SaveAsync(key, guid);
return guid;
}
}
}