/// <summary>
        ///     Initializes a new instance of the <see cref="GuestSessionController" /> class.
        /// </summary>
        /// <param name="repositoryFactory">The repository factory.</param>
        /// <param name="validatorLocator">The validator locator.</param>
        /// <param name="eventService">The event service.</param>
        /// <param name="loggerFactory">The logger.</param>
        /// <param name="emailSendingService"></param>
        /// <param name="serviceToServiceProjectApi"></param>
        /// <param name="userApi"></param>
        /// <param name="projectLobbyStateController"></param>
        /// <param name="serviceToServiceAccountSettingsApi">The API for Account/Tenant specific settings</param>
        /// <param name="synthesisObjectSerializer">The Synthesis object serializer</param>
        /// <param name="projectGuestContextService"></param>
        /// <param name="requestHeaders"></param>
        /// <param name="maxGuestsAllowedInProject"></param>
        public GuestSessionController(
            IRepositoryFactory repositoryFactory,
            IValidatorLocator validatorLocator,
            IEventService eventService,
            ILoggerFactory loggerFactory,
            IEmailSendingService emailSendingService,
            IProjectApi serviceToServiceProjectApi,
            IUserApi userApi,
            IProjectLobbyStateController projectLobbyStateController,
            ISettingApi serviceToServiceAccountSettingsApi,
            IObjectSerializer synthesisObjectSerializer,
            IProjectGuestContextService projectGuestContextService,
            IRequestHeaders requestHeaders,
            int maxGuestsAllowedInProject)
        {
            _guestSessionRepository = repositoryFactory.CreateRepository <GuestSession>();
            _guestInviteRepository  = repositoryFactory.CreateRepository <GuestInvite>();

            _validatorLocator            = validatorLocator;
            _eventService                = eventService;
            _logger                      = loggerFactory.GetLogger(this);
            _projectLobbyStateController = projectLobbyStateController;
            _emailSendingService         = emailSendingService;

            _serviceToServiceProjectApi = serviceToServiceProjectApi;
            _userApi = userApi;
            _serviceToServiceAccountSettingsApi = serviceToServiceAccountSettingsApi;
            _synthesisObjectSerializer          = synthesisObjectSerializer;
            _projectGuestContextService         = projectGuestContextService;
            _requestHeaders            = requestHeaders;
            _maxGuestsAllowedInProject = maxGuestsAllowedInProject;
        }
コード例 #2
0
 public SessionEndedEventHandler(
     IGuestSessionController guestSessionController,
     IProjectLobbyStateController projectLobbyStateController,
     ILoggerFactory loggerFactory)
 {
     _guestSessionController      = guestSessionController;
     _projectLobbyStateController = projectLobbyStateController;
     _logger = loggerFactory.GetLogger(this);
 }
        /// <inheritdoc />
        public ProjectLobbyStateModule(IMetadataRegistry metadataRegistry,
                                       IPolicyEvaluator policyEvaluator,
                                       ILoggerFactory loggerFactory, IProjectLobbyStateController projectLobbyStateController) :
            base(GuestServiceBootstrapper.ServiceNameShort, metadataRegistry, policyEvaluator, loggerFactory)
        {
            _projectLobbyStateController = projectLobbyStateController;

            CreateRoute("GetProjectLobbyState", HttpMethod.Get, $"{Routing.ProjectsRoute}/{{projectId:guid}}/{Routing.ProjectLobbyStatePath}", GetProjectLobbyStateAsync)
            .Description("Retrieves lobby state for a project.")
            .StatusCodes(HttpStatusCode.OK, HttpStatusCode.BadRequest, HttpStatusCode.Unauthorized, HttpStatusCode.Forbidden, HttpStatusCode.NotFound, HttpStatusCode.InternalServerError)
            .ResponseFormat(JsonConvert.SerializeObject(new ProjectLobbyState()));

            CreateRoute("RecalculateProjectLobbyState", HttpMethod.Put, $"{Routing.ProjectsRoute}/{{projectId:guid}}/{Routing.ProjectLobbyStatePath}", RecalculateProjectLobbyStateAsync)
            .Description("Recalculates the the lobby state of a project.")
            .StatusCodes(HttpStatusCode.OK, HttpStatusCode.BadRequest, HttpStatusCode.Unauthorized, HttpStatusCode.Forbidden, HttpStatusCode.NotFound, HttpStatusCode.InternalServerError)
            .ResponseFormat(ProjectLobbyState.Example());
        }
        /// <summary>
        ///     Initializes a new instance of the <see cref="GuestSessionController" /> class.
        /// </summary>
        public ProjectGuestContextController(
            IRepositoryFactory repositoryFactory,
            IGuestSessionController guestSessionController,
            IProjectLobbyStateController projectLobbyStateController,
            IProjectGuestContextService projectGuestContextService,
            IProjectAccessApi serviceToServiceProjectAccessApi,
            IProjectApi serviceToServiceProjectApi,
            IUserApi userApi)
        {
            _guestSessionRepository = repositoryFactory.CreateRepository <GuestSession>();

            _guestSessionController      = guestSessionController;
            _projectLobbyStateController = projectLobbyStateController;

            _serviceToServiceProjectApi       = serviceToServiceProjectApi;
            _serviceToServiceProjectAccessApi = serviceToServiceProjectAccessApi;
            _userApi = userApi;
            _projectGuestContextService = projectGuestContextService;
        }
コード例 #5
0
        public ProjectLobbyStateControllerTests()
        {
            _cacheSelectorMock.Setup(x => x[It.IsAny <CacheConnection>()])
            .Returns(_cacheMock.Object);

            var repositoryFactoryMock = new Mock <IRepositoryFactory>();

            repositoryFactoryMock
            .Setup(m => m.CreateRepository <GuestSession>())
            .Returns(_guestSessionRepositoryMock.Object);

            repositoryFactoryMock
            .Setup(m => m.CreateRepository <GuestSession>())
            .Returns(_guestSessionRepositoryMock.Object);

            _cacheMock
            .Setup(c => c.TryItemGetAsync(It.IsAny <string>(), typeof(ProjectLobbyState), It.IsAny <Reference <ProjectLobbyState> >()))
            .ReturnsAsync(true);

            _validatorMock
            .Setup(v => v.Validate(It.IsAny <object>()))
            .Returns(SuccessfulValidationResult);

            var validatorLocatorMock = new Mock <IValidatorLocator>();

            validatorLocatorMock
            .Setup(m => m.GetValidator(It.IsAny <Type>()))
            .Returns(_validatorMock.Object);

            var loggerFactoryMock = new Mock <ILoggerFactory>();

            loggerFactoryMock.Setup(m => m.Get(It.IsAny <LogTopic>()))
            .Returns(new Mock <ILogger>().Object);

            _target = new ProjectLobbyStateController(repositoryFactoryMock.Object,
                                                      _cacheSelectorMock.Object,
                                                      validatorLocatorMock.Object,
                                                      _sessionServiceMock.Object,
                                                      _projectApi.Object,
                                                      _eventServiceMock.Object,
                                                      loggerFactoryMock.Object,
                                                      MaxNumberOfGuests);
        }
 public ProjectCreatedEventHandler(ILoggerFactory loggerFactory, IProjectLobbyStateController projectLobbyStateController)
 {
     _logger = loggerFactory.GetLogger(this);
     _projectLobbyStateController = projectLobbyStateController;
 }