public static IResult <bool> SeedUsers(this Seeds seeds) => Do <bool> .TrySeed(seeds, (r) =>
        {
            var context         = seeds.Context;
            _config             = seeds.GetDep <SeedsConfiguration>();
            _userLoginConductor = seeds.GetDep <IUserLoginConductor <User> >();

            // Validation
            Validate();

            var existingUsers = context.Users.ToList();

            foreach (var user in _users)
            {
                var userName = user.UserName.ToLower();

                // If user already exists, skip
                if (existingUsers.Exists(u => u.UserName?.ToLower() == userName))
                {
                    continue;
                }

                _userLoginConductor
                .SetPassword(user, _config.DefaultUserPassword)
                .ThrowIfAnyErrors();

                context.Users.Add(user);
            }

            context.SaveChanges();

            return(true);
        }).Result;