Example #1
0
 private PairingCodeEntity CreatePairingCodeEntity(PairingCodeData data)
 {
     return(new PairingCodeEntity()
     {
         Facade = data.Facade,
         Id = data.Id,
         Label = data.Label,
         Expiration = data.Expiration,
         CreatedTime = data.DateCreated,
         TokenValue = data.TokenValue,
         SIN = data.SIN
     });
 }
Example #2
0
        private async Task <PairingResult> ActivateIfComplete(ApplicationDbContext ctx, PairingCodeData pairingCode)
        {
            if (!string.IsNullOrEmpty(pairingCode.SIN) && !string.IsNullOrEmpty(pairingCode.StoreDataId))
            {
                ctx.PairingCodes.Remove(pairingCode);

                // Can have concurrency issues... but no harm can be done
                var alreadyUsed = await ctx.PairedSINData.Where(p => p.SIN == pairingCode.SIN && p.StoreDataId != pairingCode.StoreDataId).AnyAsync();

                if (alreadyUsed)
                {
                    return(PairingResult.ReusedKey);
                }
                await ctx.PairedSINData.AddAsync(new PairedSINData()
                {
                    Id          = pairingCode.TokenValue,
                    PairingTime = DateTime.UtcNow,
                    Facade      = pairingCode.Facade,
                    Label       = pairingCode.Label,
                    StoreDataId = pairingCode.StoreDataId,
                    SIN         = pairingCode.SIN
                });

                return(PairingResult.Complete);
            }
            return(PairingResult.Partial);
        }