public async Task <ParticipationTokens> CreateGetToken(ParticipationTokens token, int length) { var addedToken = await _db.ParticipationTokens.AddAsync(token); await _db.SaveChangesAsync(); var hashIds = new Hashids("really cool raiders salt", length, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"); var tinyToken = hashIds.Encode(Convert.ToInt32(addedToken.Entity.Id)); var numbers = hashIds.Decode(tinyToken); var participationToken = await _db.ParticipationTokens.FirstOrDefaultAsync(s => s.Id == addedToken.Entity.Id); participationToken.TinyTokenId = tinyToken; await _db.SaveChangesAsync(); return(participationToken); }
public async Task <IActionResult> GetToken(int numberOfUses, int tokenType, int?tokenLength = null, DateTime?expiration = null) { //Default length to 5 int length = tokenLength ?? 5; //Creates participation token for users to use var token = new ParticipationTokens() { TinyTokenId = "", UsesRemaining = numberOfUses, ParticipationTokenTypeId = tokenType, ExpirationDate = expiration ?? DateTime.UtcNow.AddMinutes(15) //if expiration is null, default it to 15 minutes }; var createdToken = await _participationServices.CreateGetToken(token, length); return(Ok(createdToken.TinyTokenId)); }