Exemple #1
0
        public async Task DeleteUsers()
        {
            UserRecord user1 = await NewUserWithParamsAsync();

            UserRecord user2 = await NewUserWithParamsAsync();

            UserRecord user3 = await NewUserWithParamsAsync();

            DeleteUsersResult deleteUsersResult = await this.SlowDeleteUsersAsync(
                new List <string> {
                user1.Uid, user2.Uid, user3.Uid
            });

            Assert.Equal(3, deleteUsersResult.SuccessCount);
            Assert.Equal(0, deleteUsersResult.FailureCount);
            Assert.Empty(deleteUsersResult.Errors);

            GetUsersResult getUsersResult = await FirebaseAuth.DefaultInstance.GetUsersAsync(
                new List <UserIdentifier>
            {
                new UidIdentifier(user1.Uid),
                new UidIdentifier(user2.Uid),
                new UidIdentifier(user3.Uid),
            });

            Assert.Empty(getUsersResult.Users);
            Assert.Equal(3, getUsersResult.NotFound.Count());
        }
Exemple #2
0
        public void EmptyErrors()
        {
            var result = new DeleteUsersResult(2, new List <ErrorInfo>());

            Assert.Equal(2, result.SuccessCount);
            Assert.Equal(0, result.FailureCount);
            Assert.Empty(result.Errors);
        }
Exemple #3
0
        public void NullErrors()
        {
            var result = new DeleteUsersResult(2, null);

            Assert.Equal(2, result.SuccessCount);
            Assert.Equal(0, result.FailureCount);
            Assert.Empty(result.Errors);
        }
Exemple #4
0
        public async Task DeleteStudents(string[] studentIds)
        {
            DeleteUsersResult deleteUsersResult = await FirebaseAuth.DefaultInstance.DeleteUsersAsync(studentIds.ToList());

            studentIds.ToList().ForEach(x =>
            {
                var student = studentRepository.GetById(x);
                if (student != null)
                {
                    studentRepository.Delete(student);
                }
            });
            studentRepository.Save();
        }
Exemple #5
0
        public void Errors()
        {
            var errors = new List <ErrorInfo>()
            {
                { new ErrorInfo(1, "test") },
            };
            var result = new DeleteUsersResult(2, errors);

            Assert.Equal(1, result.SuccessCount);
            Assert.Equal(1, result.FailureCount);
            var error = Assert.Single(result.Errors);

            Assert.Equal(1, error.Index);
            Assert.Equal("test", error.Reason);
        }
Exemple #6
0
        internal static async Task DeleteUsersAsync()
        {
            // [START bulk_delete_users]
            DeleteUsersResult result = await FirebaseAuth.DefaultInstance.DeleteUsersAsync(new List <string>
            {
                "uid1",
                "uid2",
                "uid3",
            });

            Console.WriteLine($"Successfully deleted {result.SuccessCount} users.");
            Console.WriteLine($"Failed to delete {result.FailureCount} users.");

            foreach (ErrorInfo err in result.Errors)
            {
                Console.WriteLine($"Error #{err.Index}, reason: {err.Reason}");
            }

            // [END bulk_delete_users]
        }
Exemple #7
0
        public async Task DeleteUsersIsIdempotent()
        {
            UserRecord user1 = await NewUserWithParamsAsync();

            DeleteUsersResult result = await this.SlowDeleteUsersAsync(
                new List <string> {
                user1.Uid
            });

            Assert.Equal(1, result.SuccessCount);
            Assert.Equal(0, result.FailureCount);
            Assert.Empty(result.Errors);

            // Delete the user again, ensuring that everything still counts as a success.
            result = await this.SlowDeleteUsersAsync(
                new List <string> {
                user1.Uid
            });

            Assert.Equal(1, result.SuccessCount);
            Assert.Equal(0, result.FailureCount);
            Assert.Empty(result.Errors);
        }
Exemple #8
0
        public async Task DeleteExistingAndNonExistingUsers()
        {
            UserRecord user1 = await NewUserWithParamsAsync();

            DeleteUsersResult deleteUsersResult = await this.SlowDeleteUsersAsync(
                new List <string> {
                user1.Uid, "uid-that-doesnt-exist"
            });

            Assert.Equal(2, deleteUsersResult.SuccessCount);
            Assert.Equal(0, deleteUsersResult.FailureCount);
            Assert.Empty(deleteUsersResult.Errors);

            GetUsersResult getUsersResult = await FirebaseAuth.DefaultInstance.GetUsersAsync(
                new List <UserIdentifier>
            {
                new UidIdentifier(user1.Uid),
                new UidIdentifier("uid-that-doesnt-exist"),
            });

            Assert.Empty(getUsersResult.Users);
            Assert.Equal(2, getUsersResult.NotFound.Count());
        }
        public async Task <DeleteUsersResult> DeleteUsersAsync(IEnumerable <int> userIds)
        {
            var result = new DeleteUsersResult();

            foreach (var id in userIds)
            {
                var appUser = await identityUnitOfWork.UserManager.FindByIdAsync(id.ToString());

                if (appUser is null)
                {
                    result.AddError($"User {id} not found");
                    result.NotDeleted.Add(id);
                }
                else
                {
                    await userCrudService.DeleteAsync(id);

                    await identityUnitOfWork.UserManager.DeleteAsync(appUser);

                    result.DeletedUsers.Add(id);
                }
            }
            return(result);
        }