public GroupController(IGroupFacade groupFacade, IUserFacade userFacade,
                        IGroupEditFacade groupEditFacade)
 {
     _groupFacade     = groupFacade;
     _userFacade      = userFacade;
     _groupEditFacade = groupEditFacade;
 }
        public void Initialize()
        {
            var inMemoryUserRepository     = new InMemoryUserRepository();
            var inMemoryGroupRepository    = new InMemoryGroupRepository();
            var inMemoryKeyRepository      = new InMemoryKeysRepository();
            var inMemorySanctionRepository = new InMemorySanctionRepository();
            var groupSettings = new GroupSettings(2, 10, 0, 1000);
            var emailSender   = new Mock <IEmailSender>();
            var publisher     = new Mock <IEventPublisher>();

            userSettings = new UserSettings("");

            _groupFacade = new GroupFacade(inMemoryGroupRepository, inMemoryUserRepository, inMemorySanctionRepository,
                                           new GroupSettings(3, 100, 0, 1000), publisher.Object);
            _accountFacade = new AccountFacade(inMemoryKeyRepository, inMemoryUserRepository,
                                               emailSender.Object, userSettings);
            _groupEditFacade = new GroupEditFacade(inMemoryGroupRepository, groupSettings, publisher.Object);
            _groupCreatorId  =
                _accountFacade.RegUser("Alena", new Credentials("email", "password"), true);
        }