Ejemplo n.º 1
0
        public Task ReplaceCodesAsync(TUser user, IEnumerable <string> recoveryCodes, CancellationToken cancellationToken)
        {
            var task = new Task(() =>
            {
                var code              = String.Join(";", recoveryCodes);
                var newItem           = new SDHCIdentityUserToken();
                newItem.Id            = Guid.NewGuid().ToString();
                newItem.Value         = code;
                newItem.UserId        = user.Id;
                newItem.Name          = "RecoveryCodes";
                newItem.LoginProvider = "[AspNetUserStore]";
                db.Add <SDHCIdentityUserToken>(newItem, out var response);
            });

            task.Start();
            return(task);
        }
Ejemplo n.º 2
0
        public Task SetTokenAsync(TUser user, string loginProvider, string name, string value, CancellationToken cancellationToken)
        {
            var task = new Task(() =>
            {
                var tokens = db.Where <SDHCIdentityUserToken>(
                    b => b.UserId == user.Id && b.LoginProvider == loginProvider && b.Name == name
                    ).ToList();
                if (tokens.Count < 0)
                {
                    var token = new SDHCIdentityUserToken()
                    {
                        Id            = Guid.NewGuid().ToString(),
                        FullType      = typeof(SDHCIdentityUserToken).FullName,
                        LoginProvider = loginProvider,
                        Name          = name,
                        UserId        = user.Id,
                        Value         = value,
                    };
                    db.Add <SDHCIdentityUserToken>(token, out var r);
                    return;
                }
                if (tokens.Count > 0)
                {
                    var current   = tokens[0];
                    current.Value = value;
                    db.Update <SDHCIdentityUserToken>(current, current.Id, out var response);
                }
                if (tokens.Count > 1)
                {
                    var more = tokens.Where(b => tokens.IndexOf(b) >= 1).Select(b => new UpdateEntity <SDHCIdentityUserToken>()
                    {
                        Object = b, Key = b.Id
                    }).ToList();
                    db.Remove <SDHCIdentityUserToken>(more);
                }
            });

            task.Start();
            return(task);
        }