Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }