public static RegistrationService GetRegistrationService(
            IUserAuthRepository userAuthRepository,
            AuthUserSession oAuthUserSession  = null,
            MockRequestContext requestContext = null)
        {
            if (requestContext == null)
            {
                requestContext = new MockRequestContext();
            }
            if (oAuthUserSession == null)
            {
                oAuthUserSession = requestContext.ReloadSession();
            }

            var httpReq = requestContext.Get <IHttpRequest>();
            var httpRes = requestContext.Get <IHttpResponse>();

            oAuthUserSession.Id = httpRes.CreateSessionId(httpReq);
            httpReq.Items[ServiceExtensions.RequestItemsSessionKey] = oAuthUserSession;

            var mockAppHost = new BasicAppHost {
                Container = requestContext.Container
            };

            requestContext.Container.Register(userAuthRepository);

            var authService = new AuthService {
                RequestContext = requestContext,
            };

            authService.SetAppHost(mockAppHost);
            mockAppHost.Register(authService);

            var registrationService = new RegistrationService {
                UserAuthRepo          = userAuthRepository,
                RequestContext        = requestContext,
                RegistrationValidator =
                    new RegistrationValidator {
                    UserAuthRepo = RegistrationServiceTests.GetStubRepo()
                },
            };

            registrationService.SetAppHost(mockAppHost);

            return(registrationService);
        }
        public static RegisterService GetRegistrationService(
            IUserAuthRepository userAuthRepository,
            AuthUserSession oAuthUserSession = null,
            BasicRequest request             = null)
        {
            if (request == null)
            {
                request = new BasicRequest();
            }
            if (oAuthUserSession == null)
            {
                oAuthUserSession = request.ReloadSession();
            }

            oAuthUserSession.Id = request.Response.CreateSessionId(request);
            request.Items[SessionFeature.RequestItemsSessionKey] = oAuthUserSession;

            var mockAppHost = new BasicAppHost();

            mockAppHost.Container.Register <IAuthRepository>(userAuthRepository);

            var authService = new AuthenticateService
            {
                Request = request,
            };

            authService.SetResolver(mockAppHost);
            mockAppHost.Register(authService);

            var registrationService = new RegisterService
            {
                AuthRepo = userAuthRepository,
                Request  = request,
                RegistrationValidator =
                    new RegistrationValidator {
                    UserAuthRepo = RegistrationServiceTests.GetStubRepo()
                },
            };

            registrationService.SetResolver(mockAppHost);

            return(registrationService);
        }
		public static RegistrationService GetRegistrationService(
			IUserAuthRepository userAuthRepository,
			AuthUserSession oAuthUserSession = null,
			MockRequestContext requestContext = null)
		{
			if (requestContext == null)
				requestContext = new MockRequestContext();
			if (oAuthUserSession == null)
				oAuthUserSession = requestContext.ReloadSession();

			var httpReq = requestContext.Get<IHttpRequest>();
			var httpRes = requestContext.Get<IHttpResponse>();
			oAuthUserSession.Id = httpRes.CreateSessionId(httpReq);
			httpReq.Items[ServiceExtensions.RequestItemsSessionKey] = oAuthUserSession;

			var mockAppHost = new BasicAppHost {
				Container = requestContext.Container
			};

			requestContext.Container.Register(userAuthRepository);

		    var authService = new AuthService {
                RequestContext = requestContext,
            };
            authService.SetAppHost(mockAppHost);
            mockAppHost.Register(authService);

			var registrationService = new RegistrationService {
				UserAuthRepo = userAuthRepository,
				RequestContext = requestContext,
				RegistrationValidator =
					new RegistrationValidator { UserAuthRepo = RegistrationServiceTests.GetStubRepo() },
			};
			registrationService.SetAppHost(mockAppHost);

			return registrationService;
		}