protected ProviderControllerBase(IProviderFactory <TProvider, TProviderDefinition> providerFactory, string resource, ProviderResourceMapper <TProviderResource, TProviderDefinition> resourceMapper) { _providerFactory = providerFactory; _resourceMapper = resourceMapper; SharedValidator.RuleFor(c => c.Name).NotEmpty(); SharedValidator.RuleFor(c => c.Name).Must((v, c) => !_providerFactory.All().Any(p => p.Name == c && p.Id != v.Id)).WithMessage("Should be unique"); SharedValidator.RuleFor(c => c.Implementation).NotEmpty(); SharedValidator.RuleFor(c => c.ConfigContract).NotEmpty(); PostValidator.RuleFor(c => c.Fields).NotNull(); }