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; }
/// <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; }
/// <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; }