Exemple #1
0
        public virtual void GrabContext(SynkContext context)
        {
            if (!initialized)
            {
                initialized = true;
                log.Info("Initializing " + this.localPath + " site");

                var assembly = this.GetType().Assembly;
                var types    = assembly.GetTypes();
                var entities = new List <Entity>();

                entities.Add(new Model.File());
                entities.Add(new Model.Enum());
                entities.Add(new Model.User());

                foreach (var type in types)
                {
                    if (type.IsSubclassOf(typeof(Entity)))
                    {
                        var entity = (Entity)Activator.CreateInstance(type);
                        entities.Add(entity);
                    }
                }

                foreach (var entity in entities)
                {
                    entity.InitFromContext(context);
                    if (GenerateTableForEntity(context, entity))
                    {
                        log.Info("Generated table: " + entity.tableName);
                    }
                }

                var userTotal = context.database.GetEntityCount <User>();
                if (userTotal == 0)
                {
                    var user = context.database.CreateEntity <User>();
                    user.InitFromContext(context);
                    context.config.InitFirstUser(context, user);

                    user.Save(context);

                    bool instanced = config.GetFieldBool("instanced");
                    if (instanced)
                    {
                        context.database.createDatabase(user.GetFieldValue("database"));
                    }
                }


                context.CreateEnum("country", countryList);
                //this.createEnum("product_type", array('product', 'service', 'other'));
            }
        }