public virtual CoreOptionsExtension UseDatabase(IndexedDbDatabaseModel indexedDbDatabaseModel)
        {
            var clone = Clone();

            clone._indexedDbDatabaseModel = indexedDbDatabaseModel;

            return(clone);
        }
Exemple #2
0
        private IndexedDbDatabaseModel GetGridColumnDatabaseModelAttributeBased()
        {
            var indexedDbDatabaseModel = new IndexedDbDatabaseModel()
                                         .WithName("TestAttributes")
                                         .WithVersion(1);

            indexedDbDatabaseModel.AddStore <TableFieldDto>();

            return(indexedDbDatabaseModel);
        }
Exemple #3
0
        /// <summary>
        /// Creates a new IndexedDbStore and adds it to the Database Model
        /// </summary>
        /// <param name="model"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static IndexedDbStore AddStore(this IndexedDbDatabaseModel model, string name)
        {
            model.Stores ??= new List <IndexedDbStore>();

            var store = new IndexedDbStore {
                Name = name
            };

            model.Stores.Add(store);

            return(store);
        }
        private void SetDbModel()
        {
            var option = _indexedDbDatabaseOptions.GetExtension <CoreOptionsExtension>();

            if (option != null)
            {
                _indexedDbDatabaseModel = option.IndexedDbDatabaseModel;
            }
            else
            {
                throw new NullReferenceException("IndexedDB Database Model not configured. Add one in AddIndexedDbDatabase method");
            }
        }
Exemple #5
0
        /// <summary>
        /// Adds a new store named TEntity.Name and adds Key and Indexes based on IndexedDbKey and IndexedDbIndex Attributes
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="model"></param>
        /// <returns></returns>
        public static IndexedDbStore AddStore <TEntity>(this IndexedDbDatabaseModel model)
        {
            model.Stores ??= new List <IndexedDbStore>();

            var store = new IndexedDbStore {
                Name = typeof(TEntity).Name
            };

            store.SetupFrom <TEntity>();

            model.Stores.Add(store);

            return(store);
        }
        /// <summary>
        /// Creates a new IndexedDbStore and adds it to the Database Model
        /// </summary>
        /// <param name="model"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static IndexedDbStore AddStore(this IndexedDbDatabaseModel model, string name)
        {
            if (model.Stores == null)
            {
                model.Stores = new List <IndexedDbStore>();
            }

            var store = new IndexedDbStore();

            store.Name = name;

            model.Stores.Add(store);

            return(store);
        }
        /// <summary>
        /// Adds a new store and adds Key and Indexes based on IndexedDbKey and IndexedDbIndex Attributes
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="model"></param>
        /// <param name="storeName"></param>
        /// <returns></returns>
        public static IndexedDbStore AddStore <TEntity>(this IndexedDbDatabaseModel model, string storeName)
        {
            if (model.Stores == null)
            {
                model.Stores = new List <IndexedDbStore>();
            }

            var store = new IndexedDbStore();

            store.Name = storeName;

            store.SetupFrom <TEntity>();

            model.Stores.Add(store);

            return(store);
        }
Exemple #8
0
        public static IndexedDbDatabaseModel GetDataRawDatabaseModel()
        {
            var indexedDbDatabaseModel = new IndexedDbDatabaseModel
            {
                Name    = "DataRawDb",
                Version = 1,
                Stores  = new List <IndexedDbStore>
                {
                    new IndexedDbStore
                    {
                        Name = "dataraw",
                        Key  = new IndexedDbStoreParameter
                        {
                            KeyPath       = "rowId",
                            AutoIncrement = true
                        },
                        Indexes = new List <IndexedDbIndex>
                        {
                            new IndexedDbIndex
                            {
                                Name       = "rowId",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = true
                                }
                            },
                            new IndexedDbIndex
                            {
                                Name       = "data",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            },
                        }
                    },
                },
                DbModelId = 0
            };

            return(indexedDbDatabaseModel);
        }
Exemple #9
0
        private IndexedDbDatabaseModel GetSecurityDatabaseModelFluent()
        {
            var model = new IndexedDbDatabaseModel()
                        .WithName("Security")
                        .WithVersion(1)
                        .WithModelId(0);

            model.AddStore("tableFieldDtos")
            .WithAutoIncrementingKey("tableFieldId")
            .AddUniqueIndex("tableFieldId")
            .AddIndex("attachedProperty")
            .AddIndex("fieldVisualName")
            .AddIndex("hide")
            .AddIndex("isLink")
            .AddIndex("memberOf")
            .AddIndex("tableName")
            .AddIndex("textAlignClass")
            .AddIndex("type")
            .AddIndex("width");

            return(model);
        }
Exemple #10
0
        private IndexedDbDatabaseModel GetGridColumnDatabaseModel()
        {
            var indexedDbDatabaseModel = new IndexedDbDatabaseModel
            {
                Name    = "GridColumnData",
                Version = 1,
                Stores  = new List <IndexedDbStore>
                {
                    new IndexedDbStore
                    {
                        Name = "TableFieldDtos",
                        Key  = new IndexedDbStoreParameter
                        {
                            KeyPath       = "tableFieldId",
                            AutoIncrement = true
                        },
                        Indexes = new List <IndexedDbIndex>
                        {
                            new IndexedDbIndex
                            {
                                Name       = "tableFieldId",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = true
                                }
                            },
                            new IndexedDbIndex
                            {
                                Name       = "attachedProperty",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            },
                            new IndexedDbIndex
                            {
                                Name       = "fieldVisualName",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            }, new IndexedDbIndex
                            {
                                Name       = "hide",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            },
                            new IndexedDbIndex
                            {
                                Name       = "isLink",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            },
                            new IndexedDbIndex
                            {
                                Name       = "memberOf",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            },
                            new IndexedDbIndex
                            {
                                Name       = "tableName",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            },
                            new IndexedDbIndex
                            {
                                Name       = "textAlignClass",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            },
                            new IndexedDbIndex
                            {
                                Name       = "type",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            },
                            new IndexedDbIndex
                            {
                                Name       = "width",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            },
                            //new IndexedDbIndex
                            //{
                            //    Name = "TestParam",
                            //    Definition = new IndexedDbIndexParameter
                            //    {
                            //        Unique = false
                            //    }
                            //}
                        }
                    }
                },
                DbModelId       = 0,
                UseKeyGenerator = true
            };

            return(indexedDbDatabaseModel);
        }
Exemple #11
0
        private IndexedDbDatabaseModel GetSecurityDatabaseModel()
        {
            var indexedDbDatabaseModel = new IndexedDbDatabaseModel
            {
                Name    = "Security",
                Version = 1,
                Stores  = new List <IndexedDbStore>
                {
                    new IndexedDbStore
                    {
                        Name = "tableFieldDtos",
                        Key  = new IndexedDbStoreParameter
                        {
                            KeyPath       = "tableFieldId",
                            AutoIncrement = true
                        },
                        Indexes = new List <IndexedDbIndex>
                        {
                            new IndexedDbIndex
                            {
                                Name       = "tableFieldId",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = true
                                }
                            },
                            new IndexedDbIndex
                            {
                                Name       = "attachedProperty",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            },
                            new IndexedDbIndex
                            {
                                Name       = "fieldVisualName",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            }, new IndexedDbIndex
                            {
                                Name       = "hide",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            },
                            new IndexedDbIndex
                            {
                                Name       = "isLink",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            },
                            new IndexedDbIndex
                            {
                                Name       = "memberOf",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            },
                            new IndexedDbIndex
                            {
                                Name       = "tableName",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            },
                            new IndexedDbIndex
                            {
                                Name       = "textAlignClass",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            },
                            new IndexedDbIndex
                            {
                                Name       = "type",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            },
                            new IndexedDbIndex
                            {
                                Name       = "width",
                                Definition = new IndexedDbIndexParameter
                                {
                                    Unique = false
                                }
                            }
                        }
                    }
                },
                DbModelId = 0
            };

            return(indexedDbDatabaseModel);
        }
 /// <summary>
 /// Sets Database ModelId. Defaults to 0
 /// </summary>
 /// <param name="model"></param>
 /// <param name="id"></param>
 /// <returns></returns>
 public static IndexedDbDatabaseModel WithModelId(this IndexedDbDatabaseModel model, int id)
 {
     model.DbModelId = id;
     return(model);
 }
 /// <summary>
 /// Sets Version of Database Model
 /// </summary>
 /// <param name="model"></param>
 /// <param name="version"></param>
 /// <returns></returns>
 public static IndexedDbDatabaseModel WithVersion(this IndexedDbDatabaseModel model, int version)
 {
     model.Version = version;
     return(model);
 }
 /// <summary>
 /// Sets Name of Database Model
 /// </summary>
 /// <param name="model"></param>
 /// <param name="name"></param>
 /// <returns></returns>
 public static IndexedDbDatabaseModel WithName(this IndexedDbDatabaseModel model, string name)
 {
     model.Name = name;
     return(model);
 }
 public new virtual IndexedDbOptionsBuilder <TContext> UseDatabase([NotNull] IndexedDbDatabaseModel indexedDbDatabaseModel) => WithOption(e => e.UseDatabase(indexedDbDatabaseModel));
 /// <summary>
 /// Sets Database UseKeyGenerator Property to given value
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public static IndexedDbDatabaseModel UseKeyGenerator(this IndexedDbDatabaseModel model, bool value)
 {
     model.UseKeyGenerator = value;
     return(model);
 }