private void ValidateModel(User user, string password)
        {
            // validate email
            if (!EmailValidation.IsEmailFormatValid(user.Email))
            {
                throw new ValidationException($"Email '{user.Email}' is not valid");
            }

            //// student must have tenant
            //if (user.RoleId.EqualsEnum(Roles.Student) && user.TenantId.IsNotSet())
            //    throw new ValidationException("Tenant is required");

            // check that a valid role is provided
            if (!user.RoleId.IsInEnum <Roles>() || user.RoleId.ToEnum <Roles>() == Roles.Undefined)
            {
                throw new ValidationException("Role is required");
            }

            // validate login type
            Validator.Required(user.LoginTypeId, "Login Type");

            if (user.LoginTypeId.EqualsEnum(LoginTypes.Default))
            {
                // check password for new users
                if (user.Id.IsNotSet() || !string.IsNullOrWhiteSpace(password))
                {
                    ValidateNewPassword(user, password);
                }
            }
            else
            {
                // check social media fields set
                ValidateForSocialMediaLogin(user);
            }
        }