Ejemplo n.º 1
0
        public DynamicQuery(IModelDescriptorCollection descriptors,
                            IServiceProvider serviceProvider,
                            IQueryRuleCollection queryRuleCollection)
        {
            if (descriptors == null)
            {
                throw new ArgumentNullException(nameof(descriptors));
            }
            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }
            var descriptor  = descriptors[typeof(T)] ?? throw new InvalidOperationException($"Missing descriptor of dto {typeof(T).Name}");
            var contextType = descriptor.Bag.__Context__ ?? throw new InvalidOperationException($"Missing db context for descriptor of dto {typeof(T).Name}");
            var context     = serviceProvider.GetService(contextType) ?? throw new InvalidOperationException($"Can not resolve db context {contextType.Name}");
            var map         = (Dictionary <string, string>)descriptor.SourceMap;

            Descriptor  = descriptor;
            ContextType = contextType;
            Context     = context;
            EntityMap   = map;
            _query      = (IDynamicQuery <T>)Activator.CreateInstance(
                typeof(QueryWrapper <,>).MakeGenericType(descriptor.SourceType, typeof(T)),
                context, descriptor, serviceProvider, queryRuleCollection, (IDictionary <string, string>)map);
        }
Ejemplo n.º 2
0
 public ModelDescriptorBuilder(IModelDescriptorCollection modelDescriptorCollection, IConfigurationProvider provider, IMetadataTransformHandler metadataTransformHandler, IEnumerable <IModelInspector> inspectors, ModelDescriptorBuilderOptions options = null)
 {
     _modelDescriptorCollection = modelDescriptorCollection ?? throw new ArgumentNullException(nameof(modelDescriptorCollection));
     _provider = provider ?? throw new ArgumentNullException(nameof(provider));
     _metadataTransformHandler = metadataTransformHandler ?? throw new ArgumentNullException(nameof(metadataTransformHandler));
     _options    = options ?? new ModelDescriptorBuilderOptions();
     _inspectors = inspectors?.ToList() ?? new List <IModelInspector>();
 }
Ejemplo n.º 3
0
 public Validator(IModelDescriptorCollection descriptorCollection, IValidatorFactory factory, IServiceProvider serviceProvider)
 {
     _descriptorCollection = descriptorCollection ?? throw new ArgumentNullException(nameof(descriptorCollection));
     _factory         = factory ?? throw new ArgumentNullException(nameof(factory));
     _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
     if (!descriptorCollection.Contains(typeof(T)))
     {
         return;
     }
     _descriptor = descriptorCollection[typeof(T)];
     _ruleFor    = GetType().GetMethod(nameof(RuleFor));
 }
Ejemplo n.º 4
0
        public DynamicRepository(IModelDescriptorCollection descriptors,
                                 IServiceProvider serviceProvider,
                                 IQueryRuleCollection queryRuleCollection,
                                 IEnumerable <IUpdateRule> rules,
                                 IMapper mapper,
                                 IUnitOfWork unitOfWork) : base(descriptors, serviceProvider, queryRuleCollection)
        {
            if (rules == null)
            {
                throw new ArgumentNullException(nameof(rules));
            }
            if (mapper == null)
            {
                throw new ArgumentNullException(nameof(mapper));
            }
            var repoType = Descriptor.Bag.IsQueryType ? typeof(NotSupportedQueryRepositoryWrapper <,>) : typeof(RepositoryWrapper <,>);

            _repo = (IDynamicRepository <T>)Activator.CreateInstance(
                repoType.MakeGenericType(Descriptor.SourceType, typeof(T)),
                Context, Descriptor, serviceProvider, queryRuleCollection, EntityMap, rules, mapper);
            unitOfWork?.Use(_repo);
        }
Ejemplo n.º 5
0
 public ContextInspector(IServiceProvider serviceProvider, IModelDescriptorCollection descriptors)
 {
     _serviceProvider = serviceProvider?.GetRequiredService <IServiceScopeFactory>().CreateScope().ServiceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
     _descriptors     = descriptors ?? throw new ArgumentNullException(nameof(descriptors));
 }
Ejemplo n.º 6
0
 public ModelMetadataBuilder(IModelDescriptorCollection modelDescriptorCollection, IServiceProvider serviceProvider)
 {
     _modelDescriptorCollection = modelDescriptorCollection ?? throw new ArgumentNullException(nameof(modelDescriptorCollection));
     _serviceProvider           = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
 }
Ejemplo n.º 7
0
 public QueryInspector(IModelDescriptorCollection modelDescriptorCollection)
 {
     _modelDescriptorCollection = modelDescriptorCollection ?? throw new ArgumentNullException(nameof(modelDescriptorCollection));
 }