public FoursquareController(IProvideUserConfiguration configuration, Func<FoursquareLoginCommand> foursquareLoginCommandAccessor, IThreeBytesTicketService ticketService, IFoursquareClient foursquareClient, IOAuthUserService service)
        {
            if (configuration == null)
                throw new ArgumentNullException("configuration");

            this.configuration = configuration;
            this.foursquareLoginCommandAccessor = foursquareLoginCommandAccessor;
            this.ticketService = ticketService;
            this.foursquareClient = foursquareClient;
            this.service = service;
        }
        public LoginController(Func<UserEnteredIncorrectPasswordPreCommand> userEnteredIncorrectPasswordPreCommandAccessor, IProvideLoginConfiguration loginConfiguration, Func<LoginUserCommand> loginUserCommandAccessor, IThreeBytesTicketService ticketService, IProvideUserConfiguration configuration)
        {
            if (userEnteredIncorrectPasswordPreCommandAccessor == null)
                throw new ArgumentNullException("userEnteredIncorrectPasswordPreCommandAccessor");

            if (loginUserCommandAccessor == null)
                throw new ArgumentNullException("loginUserCommandAccessor");

            if (loginConfiguration == null)
                throw new ArgumentNullException("loginConfiguration");

            this.userEnteredIncorrectPasswordPreCommandAccessor = userEnteredIncorrectPasswordPreCommandAccessor;
            this.loginConfiguration = loginConfiguration;
            this.loginUserCommandAccessor = loginUserCommandAccessor;
            this.ticketService = ticketService;
            this.configuration = configuration;
        }