public class UserController
{
    private readonly Database _database = new Database();
    private readonly MessageBus _messageBus = new MessageBus();
    
    public void ChangeEmail(int userId, string newEmail)
    {
        object[] data = _database.GetUserById(userId);
        string email = (string)data[1];
        UserType type = (UserType)data[2];
        var user = new User(userId, email, type);
        
        object[] companyData = _database.GetCompany();
        string companyDomainName = (string)companyData[0];
        int numberOfEmployees = (int)companyData[1];
        
        int newNumberOIfEmployees = user.ChangeEmail(newEmail, companyDomainName, numberOfEmployees);
                    
        _database.SaveCompany(newNumberOIfEmployees);
        _database.SaveUser(user);
        _messageBus.SendEmailChangedMEssage(userId, newEmail);
    }
}