Ejemplo n.º 1
0
        public SchemaStore GetStore(DotNotation notation = null, IEnumerable <object> contracts = null)
        {
            BindingMetadataBuilder   bindingBuilder   = new BindingMetadataBuilder();
            ReferenceMetadataBuilder referenceBuilder = new ReferenceMetadataBuilder();
            TableMetadataBuilder     tableBuilder     = new TableMetadataBuilder();

            SchemaStore store = new SchemaStore(notation ?? new DotNotation(), bindingBuilder, referenceBuilder, tableBuilder);

            if (contracts != null)
            {
                foreach (var contract in contracts)
                {
                    if (contract is IRelationContractResolver relationResolver)
                    {
                        store.Use(relationResolver);
                    }

                    if (contract is IBindingContractResolver bindingResolver)
                    {
                        store.Use(bindingResolver);
                    }

                    if (contract is ITableContractResolver tableResolver)
                    {
                        store.Use(tableResolver);
                    }
                }
            }

            return(store);
        }
Ejemplo n.º 2
0
        public static ISchemaStore Use(this ISchemaStore store, ITableContractResolver resolver)
        {
            if (store == null)
            {
                throw new ArgumentNullException(nameof(store));
            }

            if (resolver == null)
            {
                throw new ArgumentNullException(nameof(resolver));
            }

            TableMetadataBuilder builder = store.Builders.FirstOfType <TableMetadataBuilder>();

            builder?.Add(resolver);

            return(store);
        }
Ejemplo n.º 3
0
        public SqlServerStore(string nameOrConnectionString, Action <TableMetadataBuilder <SqlDbType> > buildTableConfiguration = null) : base(new[] { typeof(string) })
        {
            ConnectionString = nameOrConnectionString.NonEmptyOrNull() ?? throw new ArgumentNullException(nameof(nameOrConnectionString));;

            var connectionStringName = nameOrConnectionString.GetConnectionStringName();

            if (!string.IsNullOrEmpty(connectionStringName))
            {
                ConnectionString = new AppConfigRepository().GetConnectionString(connectionStringName).NonEmptyOrNull() ?? throw new ArgumentNullException(nameof(nameOrConnectionString));;
            }

            var tableMetadataBuilder = TableMetadataBuilder <SqlDbType> .Create()
                                       .SchemaName("dbo")
                                       .TableName(nameof(Setting))
                                       .Column(nameof(Setting.Name), SqlDbType.NVarChar, 300)
                                       .Column(nameof(Setting.Value), SqlDbType.NVarChar, -1);

            buildTableConfiguration?.Invoke(tableMetadataBuilder);
            TableMetadata          = tableMetadataBuilder.Build();
            _settingCommandFactory = new SettingCommandFactory(TableMetadata);
        }
Ejemplo n.º 4
0
        public SQLiteStore(string nameOrConnectionString, Action <TableMetadataBuilder <DbType> > tableConfigBuilder = null) : base(new[] { typeof(string) })
        {
            ConnectionString = nameOrConnectionString.NonEmptyOrNull() ?? throw new ArgumentNullException(nameof(nameOrConnectionString));

            var connectionStringName = nameOrConnectionString.GetConnectionStringName();

            if (!string.IsNullOrEmpty(connectionStringName))
            {
                ConnectionString = (new AppConfigRepository().GetConnectionString(connectionStringName)).NonEmptyOrNull() ?? throw new ArgumentNullException(nameof(nameOrConnectionString));;
            }

            var settingTableConfigBuilder =
                TableMetadataBuilder <DbType> .Create()
                .TableName(nameof(Setting))
                .Column(nameof(Setting.Name), DbType.String, 300)
                .Column(nameof(Setting.Value), DbType.String, -1)
                .Column(SettingTag.Config, DbType.String, 50);

            tableConfigBuilder?.Invoke(settingTableConfigBuilder);
            SettingTableMetadata   = settingTableConfigBuilder.Build();
            _settingCommandFactory = new SettingCommandFactory(SettingTableMetadata);
        }