示例#1
0
        public static void RegisterLocator(IValidatorLocator locator)
        {
            if (locator == null)
                throw new ArgumentNullException("locator", "Cannot set locator with a null reference");

            _defaultLocator = locator;

            var validatorTypes = locator.GetValidators();
            if (validatorTypes != null)
            {
                foreach (var validatorType in validatorTypes)
                {
                    var validator = Activator.CreateInstance(validatorType);

                    if (validatorType.GetInterfaces().Any())
                    {
                        var unityValidator = DependencyResolver.Current.GetService(validatorType.GetInterfaces()[0]);
                        if (unityValidator != null)
                            validator = unityValidator;
                    }

                    var mi = validator.GetType().GetMethod("Validate");

                    Func<BaseValidatableObject, ValidationContext, IEnumerable<ValidationResult>> func = (x, y) => mi.Invoke(validator, new object[] { x, y }) as IEnumerable<ValidationResult>;

                    var genericType = validatorType.GetInterfaces().Where(x => x.IsGenericType).Select(x => x.GetGenericArguments().FirstOrDefault()).FirstOrDefault();
                    if (genericType != null && !Validators.ContainsKey(genericType))
                        Validators.TryAdd(genericType, func);
                }
            }

            _loadedValidators = true;
        }
示例#2
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="GuestInviteController" /> class.
        /// </summary>
        /// <param name="userApi">The user api.</param>
        /// <param name="emailSendingService">The email sending service.</param>
        /// <param name="projectApi">The project API.</param>
        /// <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="serializer">The serializer.</param>
        public GuestInviteController(
            IUserApi userApi,
            IProjectApi projectApi,
            IEmailSendingService emailSendingService,
            IRepositoryFactory repositoryFactory,
            IValidatorLocator validatorLocator,
            IEventService eventService,
            ILoggerFactory loggerFactory,
            IObjectSerializer serializer)
        {
            try
            {
                _guestInviteRepository = repositoryFactory.CreateRepository <GuestInvite>();
            }
            catch (Exception)
            {
                // supressing the repository exceptions for initial testing
            }

            _userApi             = userApi;
            _emailSendingService = emailSendingService;
            _projectApi          = projectApi;
            _validatorLocator    = validatorLocator;
            _eventService        = eventService;
            _logger     = loggerFactory.GetLogger(this);
            _serializer = serializer;
        }
        /// <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;
        }
示例#4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="GroupsController" /> 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="superAdminService"></param>
 /// <param name="loggerFactory">The logger factory.</param>
 public GroupsController(
     IRepositoryFactory repositoryFactory,
     IValidatorLocator validatorLocator,
     IEventService eventService,
     ISuperAdminService superAdminService,
     ILoggerFactory loggerFactory)
 {
     _groupRepositoryAsyncLazy = new AsyncLazy <IRepository <Group> >(() => repositoryFactory.CreateRepositoryAsync <Group>());
     _userRepositoryAsyncLazy  = new AsyncLazy <IRepository <User> >(() => repositoryFactory.CreateRepositoryAsync <User>());
     _validatorLocator         = validatorLocator;
     _eventService             = eventService;
     _superAdminService        = superAdminService;
     _logger = loggerFactory.GetLogger(this);
 }
 /// <summary>
 /// Constructor for the MachinesController.
 /// </summary>
 /// <param name="repositoryFactory">The Repository Factory </param>
 /// <param name="validatorLocator">The Validator Locator </param>
 /// <param name="loggerFactory">The Logger Factory Object </param>
 /// <param name="eventService">The Event Service </param>
 /// <param name="cloudShim">The cloud api service</param>
 /// <param name="tenantApi">The tenant API.</param>
 public MachinesController(
     IRepositoryFactory repositoryFactory,
     IValidatorLocator validatorLocator,
     ILoggerFactory loggerFactory,
     IEventService eventService,
     ICloudShim cloudShim,
     ITenantApi tenantApi)
 {
     _machineRepositoryAsyncLazy = new AsyncLazy <IRepository <Machine> >(() => repositoryFactory.CreateRepositoryAsync <Machine>());
     _validatorLocator           = validatorLocator;
     _eventService = eventService;
     _logger       = loggerFactory.GetLogger(this);
     _cloudShim    = cloudShim;
     _tenantApi    = tenantApi;
 }
        /// <summary>
        ///     Initializes a new instance of the <see cref="InProductTrainingController" /> class.
        /// </summary>
        /// <param name="validatorLocator">The validator locator.</param>
        /// <param name="loggerFactory">The logger factory.</param>
        /// <param name="serializer"></param>
        /// <param name="cache"></param>
        /// <param name="userApi"></param>
        public InProductTrainingController(
            IValidatorLocator validatorLocator,
            ILoggerFactory loggerFactory,
            IObjectSerializer serializer,
            ICache cache,
            IUserApi userApi)
        {
            _validatorLocator = validatorLocator;
            _logger           = loggerFactory.GetLogger(this);
            _serializer       = serializer;
            _cache            = cache;

            _dbService = new InProductTrainingSqlService();

            _userApi = userApi;
        }
 public UserInvitesController(
     IRepositoryFactory repositoryFactory,
     ILoggerFactory loggerFactory,
     IMapper mapper,
     IValidatorLocator validatorLocator,
     ITenantApi tenantApi,
     IEmailApi emailApi)
 {
     _userInviteRepositoryAsyncLazy = new AsyncLazy <IRepository <UserInvite> >(() => repositoryFactory.CreateRepositoryAsync <UserInvite>());
     _userRepositoryAsyncLazy       = new AsyncLazy <IRepository <User> >(() => repositoryFactory.CreateRepositoryAsync <User>());
     _logger            = loggerFactory.GetLogger(this);
     _mapper            = mapper;
     _tenantIdValidator = validatorLocator.GetValidator(typeof(TenantIdValidator));
     _tenantApi         = tenantApi;
     _emailApi          = emailApi;
     _validatorLocator  = validatorLocator;
 }
 public ProjectLobbyStateController(IRepositoryFactory repositoryFactory,
                                    ICacheSelector cacheSelector,
                                    IValidatorLocator validatorLocator,
                                    ISessionService sessionService,
                                    IProjectApi serviceToServiceProjectApi,
                                    IEventService eventService,
                                    ILoggerFactory loggerFactory,
                                    int maxGuestsAllowedInProject)
 {
     _cacheSelector              = cacheSelector;
     _validatorLocator           = validatorLocator;
     _sessionService             = sessionService;
     _serviceToServiceProjectApi = serviceToServiceProjectApi;
     _guestSessionRepository     = repositoryFactory.CreateRepository <GuestSession>();
     _eventService = eventService;
     _logger       = loggerFactory.GetLogger(this);
     _maxGuestsAllowedInProject = maxGuestsAllowedInProject;
 }
 public ValidationInterceptor(IValidatorLocator locator, IValidatorErrorMessageHandler handler)
 {
     _locator = locator;
     _handler = handler;
 }
 public ValidationInterceptor(IValidatorLocator locator)
 {
     _locator = locator;
 }