Example #1
0
        public override void ConfigureColumns(ColumnConfiguration columnConfig)
        {
            foreach (var col in ColumnsToShowInView)
            {
                columnConfig.AddStringColumn(col.Value, col.Key);
            }

            foreach (var col in AdditionalColumns)
            {
                columnConfig.AddColumn(col);
            }

            columnConfig.AddLinkColumn("", "Id", "Edit", Id + 1);

            columnConfig.AddButtonColumn("", "Id", "X",
                                         new UserConfirmation("Delete " + ItemName + "?")
            {
                OnConfirmationUIAction = Id + 2
            },
                                         new ShowHideColumnSetting()
            {
                Display    = ColumnDisplayType.Show,
                Conditions = new List <Condition>()
                {
                    new Condition("CanDelete", Comparison.Equals, "true")
                }
            }
                                         );
        }
Example #2
0
 public override void ConfigureColumns(ColumnConfiguration columnConfig)
 {
     columnConfig.AddStringColumn("Name", "Name");
     columnConfig.AddLinkColumn("", "Id", "Editions", MenuNumber.ViewEditions);
     columnConfig.AddLinkColumn("", "Id", "Edit", MenuNumber.EditModel);
     columnConfig.AddButtonColumn("", "Id", "X", new UserConfirmation("Delete model?", MenuNumber.DeleteModel));
 }
 public override void ConfigureColumns(ColumnConfiguration columnConfig)
 {
     columnConfig.AddStringColumn("Name", "Name");
     columnConfig.AddLinkColumn("", "Id", "Models", MenuNumber.ViewModels);
     columnConfig.AddLinkColumn("", "Id", "Edit", MenuNumber.EditManufacturer);
     columnConfig.AddButtonColumn("", "Id", "X", new UserConfirmation("Delete manufacturer?", MenuNumber.DeleteManufacturer));
 }
Example #4
0
 public override void ConfigureColumns(ColumnConfiguration columnConfig)
 {
     columnConfig.AddStringColumn("Name", "Name");
     columnConfig.AddStringColumn("Name", "Surname");
     columnConfig.AddLinkColumn("", "Id", "Edit", MenuNumber.EditPatient);
     columnConfig.AddButtonColumn("", "Id", "X", new UserConfirmation("Delete patient?", MenuNumber.DeletePatient));
 }
Example #5
0
        public override void ConfigureColumns(ColumnConfiguration columnConfig)
        {
            columnConfig.AddStringColumn("Name", "UserName");
            columnConfig.AddStringColumn("Email", "Email");
            columnConfig.AddBooleanColumn("Email Confirmed", "EmailConfirmed", "Yes", "No");
            columnConfig.AddLinkColumn("", "Id", "Send Confirmation Email", EventNumber.SendConfirmationEmail,
                                       new ShowHideColumnSetting()
            {
                Display    = ColumnDisplayType.Hide,
                Conditions = new List <Condition>()
                {
                    new Condition("EmailConfirmed", Comparison.Equals, "true")
                }
            }
                                       );

            columnConfig.AddLinkColumn("", "Id", "Edit", EventNumber.EditUser);

            columnConfig.AddButtonColumn("", "Id", "X",
                                         new UserConfirmation("Delete User?")
            {
                OnConfirmationUIAction = EventNumber.DeleteUser
            },
                                         new ShowHideColumnSetting()
            {
                Display    = ColumnDisplayType.Show,
                Conditions = new List <Condition>()
                {
                    new Condition("CanDelete", Comparison.Equals, "true")
                }
            }
                                         );
        }
        /// <summary>
        ///     Initializes a new instance of the <see cref="ColumnConfiguration"/>
        ///     class from an existing instance.
        /// </summary>
        /// <param name="other">
        ///     The instance from which to make a copy.
        /// </param>
        /// <exception cref="System.ArgumentNullException">
        ///     <paramref name="other"/> is <c>null</c>.
        /// </exception>
        public ColumnConfiguration(ColumnConfiguration other)
        {
            Guard.NotNull(other, nameof(other));

            this.Metadata     = other.Metadata.CloneT();
            this.DisplayHints = other.DisplayHints.CloneT();
        }
Example #7
0
        public override void ConfigureColumns(ColumnConfiguration columnConfig)
        {
            columnConfig.AddStringColumn("Name", "Name");
            columnConfig.AddStringColumn("Product Type", "ProductType.Name");

            columnConfig.AddLinkColumn("", "Id", "Edit", MenuNumber.EditProduct);
            columnConfig.AddButtonColumn("", "Id", "X", new UserConfirmation("Delete product?", MenuNumber.DeleteProduct));
        }
 public override void ConfigureColumns(ColumnConfiguration columnConfig)
 {
     columnConfig.AddStringColumn("Id", "Id");
     columnConfig.AddStringColumn("PostId", "PostId");
     columnConfig.AddStringColumn("Name", "Name");
     columnConfig.AddStringColumn("Email", "Email");
     columnConfig.AddStringColumn("Body", "Body");
 }
Example #9
0
        public override void ConfigureColumns(ColumnConfiguration columnConfig)
        {
            columnConfig.AddStringColumn("Name", "Name");
            columnConfig.AddStringColumn("Region", "Region.Name");

            columnConfig.AddLinkColumn("", "Id", "Edit", MenuNumber.EditCountry);

            columnConfig.AddButtonColumn("", "Id", "X", new UserConfirmation("Delete item?", MenuNumber.DeleteCountry));
        }
Example #10
0
        public override void ConfigureColumns(ColumnConfiguration columnConfig)
        {
            columnConfig.AddStringColumn("Warehouse", "Warehouse.Name");
            columnConfig.AddStringColumn("Product", "Product.Name");
            columnConfig.AddStringColumn("Quantity", "StockQuantity");

            columnConfig.AddLinkColumn("", "Id", "Edit", MenuNumber.EditStock);
            columnConfig.AddButtonColumn("", "Id", "X", new UserConfirmation("Delete warehouse stock?", MenuNumber.DeleteStock));
        }
Example #11
0
        public void AddColumn(string dtoFieldName, string dbColumnName = null,
                              bool isIdentity = false, bool isPrimaryKey = false,
                              Action <ColumnConfiguration> configColumn = null)
        {
            var config = new ColumnConfiguration(Table, dtoFieldName, dbColumnName, isIdentity, isPrimaryKey);

            configColumn?.Invoke(config);
            AddColumn(config);
        }
Example #12
0
        public override void ConfigureColumns(ColumnConfiguration columnConfig)
        {
            columnConfig.AddStringColumn("Name", "Name");
            columnConfig.AddStringColumn("Address", "Address");
            columnConfig.AddStringColumn("Company", "Company.Name");

            columnConfig.AddLinkColumn("", "Id", "Edit", MenuNumber.EditWarehouse);
            columnConfig.AddLinkColumn("", "Id", "Stock", MenuNumber.ViewStocks);
            columnConfig.AddButtonColumn("", "Id", "X", new UserConfirmation("Delete warehouse?", MenuNumber.DeleteWarehouse));
        }
Example #13
0
        public override void ConfigureColumns(ColumnConfiguration columnConfig)
        {
            columnConfig.AddStringColumn("Name", "Name");
            columnConfig.AddStringColumn("Email", "Email");
            columnConfig.AddStringColumn("Region", "Region.Name");
            columnConfig.AddStringColumn("Gender", "Gender");
            columnConfig.AddStringColumn("Course Number", "CourseNumber");

            columnConfig.AddLinkColumn("Certificate", "Id", "Certificate", MenuNumber.AttendeeCertificate);
        }
Example #14
0
        public override void ConfigureColumns(ColumnConfiguration columnConfig)
        {
            columnConfig.AddStringColumn("Date", "Date");
            columnConfig.AddStringColumn("Task", "Task");
            columnConfig.AddStringColumn("Status", "Status", 3);
            columnConfig.AddHiddenColumn("Id");
            var json = new JsonHelper();

            json.Add("type", "status");
            columnConfig.AddLinkColumn("", "Id", "Detail", EventNumber.ViewBackgroundDetail, parametersToPass: json.ToString()); //parameters not passing
        }
Example #15
0
        public override void ConfigureColumns(ColumnConfiguration columnConfig)
        {
            columnConfig.AddStringColumn("Field", "Field");
            columnConfig.AddStringColumn("Column Number/s", "Columns");

            columnConfig.AddLinkColumn("", "Id", "Edit", EventNumber.EditCsvColumnMapping);

            //columnConfig.AddButtonColumn("", "Id", "X", new UserConfirmation("Delete selected item?")
            //{
            //    OnConfirmationUIAction = MobileMenuNumber.DeleteCsvColumnMapping
            //});
        }
Example #16
0
        public override void ConfigureColumns(ColumnConfiguration columnConfig)
        {
            columnConfig.AddStringColumn("Name", "Name");
            columnConfig.AddStringColumn("Description", "Description");

            columnConfig.AddLinkColumn("", "Id", "Edit", EventNumber.EditUserRole);

            columnConfig.AddButtonColumn("", "Id", "X",
                                         new UserConfirmation("Delete User Role?")
            {
                OnConfirmationUIAction = EventNumber.DeleteUserRole
            }
                                         );
        }
        public override void ConfigureColumns(ColumnConfiguration columnConfig)
        {
            columnConfig.AddStringColumn("Name", "Name");
            columnConfig.AddStringColumn("Email", "Email");
            columnConfig.AddStringColumn("Gender", "GenderString");
            columnConfig.AddStringColumn("Region", "RegionString");
            columnConfig.AddStringColumn("Outcome", "OutcomeString");

            columnConfig.AddLinkColumn("", "Id", "Edit", MenuNumber.EditCourseAttendee);
            columnConfig.AddButtonColumn("", "Id", "X", new UserConfirmation("Delete selected item?")
            {
                OnConfirmationUIAction = MenuNumber.DeleteCourseAttendee
            });
        }
Example #18
0
        public override void ConfigureColumns(ColumnConfiguration columnConfig)
        {
            columnConfig.AddStringColumn("Name", "Name");
            columnConfig.AddHiddenColumn("Name");

            columnConfig.AddStringColumn("Event", "Event");

            columnConfig.AddButtonColumn("Sub Menus", "Id", "...", EventNumber.ViewMenus, new ShowHideColumnSetting()
            {
                Display    = ColumnDisplayType.Show,
                Conditions = new List <Condition>()
                {
                    new Condition("Event", Comparison.IsNull)
                }
            }, MenuId);

            columnConfig.AddHiddenColumn("Position");

            columnConfig.AddButtonColumn("", "Id", "Up", EventNumber.IncrementMenuOrder,
                                         new ShowHideColumnSetting()
            {
                Display    = ColumnDisplayType.Show,
                Conditions = new List <Condition>()
                {
                    new Condition("Position", Comparison.GreaterThan, "0")
                }
            });

            columnConfig.AddButtonColumn("", "Id", "Down", EventNumber.DecrementMenuOrder);
            //TODO: Would be good to hide the Down button for the last item.

            columnConfig.AddLinkColumn("", "Id", "Edit", EventNumber.EditMenu, null);

            columnConfig.AddButtonColumn("", "Id", "X",
                                         new UserConfirmation("Delete Menu Item?")
            {
                OnConfirmationUIAction = EventNumber.DeleteMenu
            },
                                         columnSetting: new ShowHideColumnSetting()
            {
                Display    = ColumnDisplayType.Show,
                Conditions = new List <Condition>()
                {
                    new Condition("CanDelete", Comparison.Equals, "true")
                }
            }
                                         );
        }
Example #19
0
        public override void ConfigureColumns(ColumnConfiguration columnConfig)
        {
            columnConfig.AddStringColumn("Course Type", "CourseType");
            columnConfig.AddStringColumn("Presenter", "Presenter");
            columnConfig.AddStringColumn("Venue", "Venue");
            columnConfig.AddStringColumn("Region", "Region");
            columnConfig.AddStringColumn("Country", "Country");
            columnConfig.AddDateColumn("Start Date", "StartDate");
            columnConfig.AddStringColumn("Course Id", "CourseId");

            columnConfig.AddLinkColumn("Attendees", "Id", "Attendees", MenuNumber.ViewAttendees);

            columnConfig.AddLinkColumn("", "Id", "Edit", MenuNumber.EditCourse);

            columnConfig.AddButtonColumn("", "Id", "X", new UserConfirmation("Delete item?", MenuNumber.DeleteCourse));
        }
Example #20
0
        public override void ConfigureColumns(ColumnConfiguration columnConfig)
        {
            columnConfig.AddStringColumn("String Value", "StringValue");
            columnConfig.AddStringColumn("Number Value", "NumberValue");
            columnConfig.AddDateColumn("Date Value", "DateValue");
            columnConfig.AddStringColumn("Long Value", "LongTestValue");
            columnConfig.AddStringColumn("Category", "Category.Description"); // You can reference sub fields in the column name field

            columnConfig.AddLinkColumn("", "Id", "Edit", MenuNumber.SampleEdit);

            columnConfig.AddButtonColumn("", "Id", "X",
                                         new UserConfirmation("Delete item?")
            {
                OnConfirmationUIAction = MenuNumber.SampleDelete
            });
        }
Example #21
0
        public override void ConfigureColumns(ColumnConfiguration columnConfig)
        {
            columnConfig.AddStringColumn("Name", "EditionName");
            columnConfig.AddStringColumn("Year", "EditionYear");

            columnConfig.AddLinkColumn("", "Id", "Edit", MenuNumber.EditEdition);

            columnConfig.AddButtonColumn("Details", "Id", "...", MenuNumber.DetailsEdition, new ShowHideColumnSetting()
            {
                Display    = ColumnDisplayType.Hide,
                Conditions = new List <Condition>()
                {
                    new Condition("Category", Comparison.Equals, "Special") // Can be used to hide buttons for certain types of data
                }
            });
            columnConfig.AddButtonColumn("", "Id", "X", new UserConfirmation("Delete edition?", MenuNumber.DeleteEdition));
        }
Example #22
0
        public IEvent GetEventItem(int key)
        {
            if (!EventList.ContainsKey(key))
            {
                return(null);
            }
            var type = EventList[key];
            var item = Container.Resolve(type) as IEvent;

            if (typeof(IBasicCrudView).IsAssignableFrom(type))
            {
                var subTypeType  = SubTypes[key];
                var subType      = Container.Resolve(subTypeType) as IBasicCrudMenuItem;
                var viewInstance = item as IBasicCrudView;
                viewInstance.Id                  = subType.GetBaseMenuId();
                viewInstance.ItemName            = subType.GetBaseItemName();
                viewInstance.ColumnsToShowInView = subType.GetColumnsToShowInView();
                viewInstance.OrderQuery          = subType.OrderQueryInternal;
                var columnConfig = new ColumnConfiguration();
                subType.ConfigureAdditionalColumns(columnConfig);
                viewInstance.AdditionalColumns = columnConfig.GetColumns();
            }
            else if (typeof(IBasicCrudModify).IsAssignableFrom(type))
            {
                var subTypeType    = SubTypes[key];
                var subType        = Container.Resolve(subTypeType) as IBasicCrudMenuItem;
                var modifyInstance = item as IBasicCrudModify;
                modifyInstance.Id                 = subType.GetBaseMenuId() + 1;
                modifyInstance.ItemName           = subType.GetBaseItemName();
                modifyInstance.InputProperties    = subType.GetInputProperties();
                modifyInstance.UniquePropertyName = subType.UniquePropertyName;
                modifyInstance.OnModifyInternal   = subType.OnModifyInternal;
            }
            else if (typeof(IBasicCrudDelete).IsAssignableFrom(type))
            {
                var subTypeType    = SubTypes[key];
                var subType        = Container.Resolve(subTypeType) as IBasicCrudMenuItem;
                var deleteInstance = (IBasicCrudDelete)item;
                deleteInstance.Id               = subType.GetBaseMenuId() + 2;
                deleteInstance.ItemName         = subType.GetBaseItemName();
                deleteInstance.OnDeleteInternal = subType.OnDeleteInternal;
            }

            return(item);
        }
Example #23
0
        public void ExtractConfigurationFromDatabase()
        {
            ConfigurationService configurationService = ConfigurationService.Instance;

            SqlServerSchema schema = new SqlServerSchema(configurationService.ApiConfiguration.ConnectionString);

            foreach (SqlServerTable table in schema.Tables)
            {
                string routeConfigurationFilePath = Path.Combine(configurationService.RoutesConfigurationDirectoryPath, table.Name + ".json");

                // only write the route configuration file if it does not yet exist
                if (!File.Exists(routeConfigurationFilePath))
                {
                    RouteConfiguration routeConfiguration = new RouteConfiguration()
                    {
                        Id       = Guid.NewGuid(),
                        Name     = table.Name + "Route",
                        Resource = table.Name,
                        Schema   = table.Schema,
                        Table    = table.Name
                    };

                    foreach (SqlServerColumn column in table.Columns)
                    {
                        ColumnConfiguration columnConfiguration = new ColumnConfiguration()
                        {
                            ColumnName   = column.Name,
                            IsPrimaryKey = column.IsPrimaryKey
                        };

                        if (column.IsPrimaryKey)
                        {
                            routeConfiguration.PrimaryKeyColumn         = column.Name;
                            routeConfiguration.PrimaryKeyColumnDataType = column.DataType;
                        }

                        routeConfiguration.Columns.Add(columnConfiguration);
                    }

                    string json = JsonConvert.SerializeObject(routeConfiguration);

                    File.WriteAllText(routeConfigurationFilePath, json);
                }
            }
        }
        public object GetObfuscatedValue(IOxymoronEngine oxymoronEngine, ColumnConfiguration columnConfiguration, IMetaColumn metaColumn, object columnValue)
        {
            ColumnConfiguration <TObfuscationStrategyConfiguration> _columnConfiguration;
            object value;

            if ((object)oxymoronEngine == null)
            {
                throw new ArgumentNullException("oxymoronEngine");
            }

            if ((object)columnConfiguration == null)
            {
                throw new ArgumentNullException("columnConfiguration");
            }

            if ((object)metaColumn == null)
            {
                throw new ArgumentNullException("metaColumn");
            }

            if ((object)columnValue == DBNull.Value)
            {
                columnValue = null;
            }

            if ((object)columnConfiguration.ObfuscationStrategySpecificConfiguration == null)
            {
                throw new InvalidOperationException(string.Format("Configuration missing: '{0}'.", "ObfuscationStrategyConfiguration"));
            }

            _columnConfiguration = new ColumnConfiguration <TObfuscationStrategyConfiguration>(columnConfiguration);

            if ((object)_columnConfiguration.ObfuscationStrategySpecificConfiguration == null)
            {
                throw new InvalidOperationException(string.Format("Configuration missing: '{0}'.", "ObfuscationStrategyConfiguration"));
            }

            value = this.CoreGetObfuscatedValue(oxymoronEngine, _columnConfiguration, metaColumn, columnValue);

            return(value);
        }
Example #25
0
        private void ApplyViewToDocument_MetadataSettings(ObfuscationConfiguration obfuscationConfiguration)
        {
            if ((object)obfuscationConfiguration == null)
            {
                throw new ArgumentNullException("obfuscationConfiguration");
            }

            obfuscationConfiguration.TableConfiguration = obfuscationConfiguration.TableConfiguration ?? new TableConfiguration();

            foreach (IMetaColumnSpecListView metaColumnSpecView in this.View.ObfuscationPartialView.MetadataSettingsPartialView.MetaColumnSpecListViews)
            {
                ColumnConfiguration columnConfiguration;

                columnConfiguration = new ColumnConfiguration()
                {
                    ColumnName = metaColumnSpecView.ColumnName ?? string.Empty,
                    ObfuscationStrategyAqtn = metaColumnSpecView.ObfuscationStrategyAqtn
                };

                obfuscationConfiguration.TableConfiguration.ColumnConfigurations.Add(columnConfiguration);
            }
        }
        /// <summary>
        /// Called when [right click].
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="DataGridViewCellMouseEventArgs" /> instance containing the event data.</param>
        public void OnRightClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                try
                {
                    using var _columnConfiguration = new ColumnConfiguration(this);

                    foreach (DataGridViewColumn c in Columns)
                    {
                        _columnConfiguration.ColumnListBox.Items.Add(c.HeaderText, c.Visible);
                    }

                    _columnConfiguration.ColumnListBox.Items.Clear();
                    _columnConfiguration.Location = PointToScreen(new Point(e.X, e.Y));
                    _columnConfiguration.ShowDialog();
                }
                catch (Exception ex)
                {
                    Fail(ex);
                }
            }
        }
Example #27
0
		protected override object CoreGetObfuscatedValue(IOxymoronEngine oxymoronEngine, ColumnConfiguration<ObfuscationStrategyConfiguration> columnConfiguration, IMetaColumn metaColumn, object columnValue)
		{
			long signHash, valueHash;
			object value;
			string sharedSecret;

			if ((object)columnConfiguration == null)
				throw new ArgumentNullException("columnConfiguration");

			if ((object)metaColumn == null)
				throw new ArgumentNullException("metaColumn");

			if ((object)columnConfiguration.ObfuscationStrategySpecificConfiguration == null)
				throw new InvalidOperationException(string.Format("Configuration missing: '{0}'.", "ObfuscationStrategyConfiguration"));

			signHash = this.GetSignHash(oxymoronEngine, columnValue);
			valueHash = this.GetValueHash(oxymoronEngine, null, columnValue);
			sharedSecret = ((valueHash <= 0 ? 1 : valueHash) * (signHash % 2 == 0 ? -1 : 1)).ToString("X");

			value = GetCipher(sharedSecret, columnValue);

			return value;
		}
        public IEnumerable <Message> ValidateObfuscationStrategySpecificConfiguration(ColumnConfiguration columnConfiguration, int?colummIndex)
        {
            ColumnConfiguration <TObfuscationStrategyConfiguration> _columnConfiguration;

            if ((object)columnConfiguration == null)
            {
                throw new ArgumentNullException("columnConfiguration");
            }

            if ((object)columnConfiguration.ObfuscationStrategySpecificConfiguration == null)
            {
                throw new InvalidOperationException(string.Format("Configuration missing: '{0}'.", "ObfuscationStrategyConfiguration"));
            }

            _columnConfiguration = new ColumnConfiguration <TObfuscationStrategyConfiguration>(columnConfiguration);

            if ((object)_columnConfiguration.ObfuscationStrategySpecificConfiguration == null)
            {
                throw new InvalidOperationException(string.Format("Configuration missing: '{0}'.", "ObfuscationStrategyConfiguration"));
            }

            return(_columnConfiguration.ObfuscationStrategySpecificConfiguration.Validate(colummIndex));
        }
Example #29
0
        /// <summary>
        /// Called when [right click].
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The
        /// <see cref="MouseEventArgs" />
        /// instance containing the event dataRows.</param>
        public void OnRightClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right &&
                Binder.CurrentRowIndex <= 1)
            {
                try
                {
                    var _configuration = new ColumnConfiguration(sender as DataGridView);
                    _configuration?.ColumnListBox?.Items?.Clear();

                    foreach (var _name in _configuration?.ColumnNames)
                    {
                        _configuration?.ColumnListBox?.Items?.Add(_name.SplitPascal(), false);
                    }

                    _configuration.Location = PointToScreen(new Point(e.X, e.Y));
                    _configuration.TopMost  = true;
                }
                catch (Exception ex)
                {
                    Fail(ex);
                }
            }
        }
Example #30
0
        public override void ConfigureColumns(ColumnConfiguration columnConfig)
        {
            columnConfig.AddStringColumn("String Value", "StringValue");
            columnConfig.AddStringColumn("Number Value", "NumberValue");
            columnConfig.AddDateColumn("Date Value", "DateValue");
            columnConfig.AddStringColumn("Long Value", "LongTestValue");
            columnConfig.AddStringColumn("Category", "Category");

            columnConfig.AddLinkColumn("", "Id", "Edit", MenuNumber.AdvancedEdit);

            columnConfig.AddButtonColumn("", "Id", "X",
                                         new UserConfirmation("Delete item?")
            {
                OnConfirmationUIAction = MenuNumber.AdvancedDelete
            });
            columnConfig.AddButtonColumn("Details", "Id", "...", MenuNumber.AdvancedDetails, new ShowHideColumnSetting()
            {
                Display    = ColumnDisplayType.Hide,
                Conditions = new List <Condition>()
                {
                    new Condition("Category", Comparison.Equals, "Special") // Can be used to hide buttons for certain types of data
                }
            });
        }
Example #31
0
		/// <summary>
		/// 初始化数据库
		/// </summary>
		private void InitializeDatabase(bool rebuild)
		{
			DbFactory.DbConnectionString = SystemConfig.Current.DbConnectionString;
			DbFactory.DefaultDbName = SystemConfig.Current.DefaultDbName;

			ColumnConfiguration[] colCfgsObj = new ColumnConfiguration[] {
			    new ColumnConfiguration( TableString.ObjectFieldId, BlazeDbType.INT4, true ),
			    new ColumnConfiguration( TableString.ObjectFieldOwner, BlazeDbType.INT4 ),
				new ColumnConfiguration( TableString.ObjectFieldParentId, BlazeDbType.INT4 ),
			    new ColumnConfiguration( TableString.ObjectFieldName, BlazeDbType.STRING),
			    new ColumnConfiguration( TableString.ObjectFieldComment, BlazeDbType.STRING)
			};
			ColumnConfiguration[] colCfgsUser = new ColumnConfiguration[] {
			    new ColumnConfiguration( TableString.UserFieldId, BlazeDbType.INT4, true ),
			    new ColumnConfiguration( TableString.UserFieldUserName, BlazeDbType.SHORT_STRING, false, true ),
			    new ColumnConfiguration( TableString.UserFieldRealName, BlazeDbType.SHORT_STRING),
			    new ColumnConfiguration( TableString.UserFieldPassword, BlazeDbType.STRING)
			};
			ColumnConfiguration[] colCfgsGroup = new ColumnConfiguration[] {
			    new ColumnConfiguration( TableString.UserGroupFieldId, BlazeDbType.INT4, true ),
			    new ColumnConfiguration( TableString.UserGroupFieldGroupName, BlazeDbType.SHORT_STRING, false, true )
			};
			ColumnConfiguration[] colCfgsUserGroup = new ColumnConfiguration[] {
			    new ColumnConfiguration( TableString.UserInGroupFieldUserId, BlazeDbType.INT4, true),
			    new ColumnConfiguration( TableString.UserInGroupFieldGroupId, BlazeDbType.INT4, true ),
			    new ColumnConfiguration( TableString.UserInGroupFieldEstablishDatetime, BlazeDbType.DATETIME )
			};
			ColumnConfiguration[] colCfgsAce = new ColumnConfiguration[] {
			    new ColumnConfiguration( TableString.AceFieldAceId, BlazeDbType.INT4, false,true,true,true,null ),
			    new ColumnConfiguration( TableString.AceFieldObjectId, BlazeDbType.INT4 ),
			    new ColumnConfiguration( TableString.AceFieldOperatorId, BlazeDbType.INT4 ),
				new ColumnConfiguration( TableString.AceFieldOperation, BlazeDbType.INT4),
			};
			ColumnConfiguration[] colCfgsGameServer = new ColumnConfiguration[] {
			    new ColumnConfiguration( TableString.GameServerFieldId, BlazeDbType.INT4, true ),
			    new ColumnConfiguration( TableString.GameServerFieldNetAddress, BlazeDbType.SHORT_STRING),				
				new ColumnConfiguration( TableString.GameServerFieldGameDir, BlazeDbType.LONG_STRING),
				new ColumnConfiguration( TableString.GameServerFieldLordPort, BlazeDbType.INT4),
				new ColumnConfiguration( TableString.GameServerFieldMaxPlayer, BlazeDbType.INT4),
				new ColumnConfiguration( TableString.GameServerFieldIntranetMask, BlazeDbType.SHORT_STRING),
				new ColumnConfiguration( TableString.GameServerFieldInternetMask, BlazeDbType.SHORT_STRING),
				new ColumnConfiguration( TableString.GameServerFieldPaysysIp, BlazeDbType.SHORT_STRING),
				new ColumnConfiguration( TableString.GameServerFieldPaysysPort, BlazeDbType.INT4),
				new ColumnConfiguration( TableString.GameServerFieldPaysysLoginName, BlazeDbType.SHORT_STRING),
				new ColumnConfiguration( TableString.GameServerFieldPaysysLoginPwd, BlazeDbType.LONG_STRING),				
				new ColumnConfiguration( TableString.GameServerFieldDbHost, BlazeDbType.SHORT_STRING),
				new ColumnConfiguration( TableString.GameServerFieldDbName, BlazeDbType.SHORT_STRING),
				new ColumnConfiguration( TableString.GameServerFieldDbLoginName, BlazeDbType.SHORT_STRING),
				new ColumnConfiguration( TableString.GameServerFieldDbLoginPwd, BlazeDbType.LONG_STRING),
				new ColumnConfiguration( TableString.GameServerFieldDbBackupDir, BlazeDbType.LONG_STRING),
				new ColumnConfiguration( TableString.GameServerFieldFSEyeIp, BlazeDbType.SHORT_STRING),
				new ColumnConfiguration( TableString.GameServerFieldFSEyePort, BlazeDbType.INT4),
				new ColumnConfiguration( TableString.GameServerFieldHasBeenConfigGuard, BlazeDbType.INT4),
				new ColumnConfiguration( TableString.GameServerFieldServerType, BlazeDbType.INT4),
                new ColumnConfiguration( TableString.GameServerFieldCfgString, BlazeDbType.LONG_STRING),
                new ColumnConfiguration( TableString.GameServerFieldFtpDownloadServer, BlazeDbType.INT4),
                new ColumnConfiguration( TableString.GameServerFieldGmcIp, BlazeDbType.STRING),
                new ColumnConfiguration( TableString.GameServerFieldGmcAccount, BlazeDbType.STRING)
			};
			ColumnConfiguration[] colCfgsServerGroup = new ColumnConfiguration[] {
			    new ColumnConfiguration( TableString.ServerGroupFieldId, BlazeDbType.INT4, true ),
			    new ColumnConfiguration( TableString.ServerGroupFieldType, BlazeDbType.INT4),
                new ColumnConfiguration( TableString.ServerGroupFieldGroupEnable, BlazeDbType.INT2),
                new ColumnConfiguration( TableString.ServerGroupFieldMaxPlayers, BlazeDbType.INT4),
                new ColumnConfiguration( TableString.ServerGroupFieldMaxPlayersLogTime, BlazeDbType.DATETIME),
                new ColumnConfiguration( TableString.ServerGroupFieldCabinet,BlazeDbType.LONG_STRING),
                new ColumnConfiguration( TableString.ServerGroupFieldGroupVersion, BlazeDbType.STRING )
			};
            ColumnConfiguration[] colCfgsServerRegion = new ColumnConfiguration[] {
			    new ColumnConfiguration( TableString.ServerRegionFieldId , BlazeDbType.INT4, true ),			    
                new ColumnConfiguration( TableString.ServerRegionFieldMaxPlayers, BlazeDbType.INT4),
                new ColumnConfiguration( TableString.ServerRegionFieldMaxPlayersLogTime, BlazeDbType.DATETIME),
                new ColumnConfiguration( TableString.ServerRegionFieldRegionName , BlazeDbType.LONG_STRING),
                new ColumnConfiguration( TableString.ServerRegionFieldRegionType , BlazeDbType.INT2)
			};
			ColumnConfiguration[] colCfgsGameLog = new ColumnConfiguration[] {
				new ColumnConfiguration( TableString.GameLogFieldId, BlazeDbType.INT4, true ),
				new ColumnConfiguration( TableString.GameLogFieldGameServerId, BlazeDbType.INT4 ),
				new ColumnConfiguration( TableString.GameLogFieldDate, BlazeDbType.DATE ),
				new ColumnConfiguration( TableString.GameLogFieldTotalMoney, BlazeDbType.INT8 ),
				new ColumnConfiguration( TableString.GameLogFieldTotalMoneyInBox, BlazeDbType.INT8 )
			};
            ColumnConfiguration[] colCfgsServerPlugIn = new ColumnConfiguration[] {
				new ColumnConfiguration( TableString.ServerPlugInFieldId, BlazeDbType.INT4, true ),
				new ColumnConfiguration( TableString.ServerPlugInFieldGameServerId, BlazeDbType.INT4 ),
				new ColumnConfiguration( TableString.ServerPlugInFieldPlugInGuid, BlazeDbType.STRING ),
				new ColumnConfiguration( TableString.ServerPlugInFieldParameter1,BlazeDbType.INT2),
				new ColumnConfiguration( TableString.ServerPlugInFieldParameter2, BlazeDbType.INT2 ),
                new ColumnConfiguration( TableString.ServerPlugInFieldParameter3, BlazeDbType.STRING ),
                new ColumnConfiguration( TableString.ServerPlugInFieldPlugInName, BlazeDbType.STRING )
			};
			ColumnConfiguration[] strategy = new ColumnConfiguration[] {
				new ColumnConfiguration( TableString.StrategyFieldId, BlazeDbType.INT4, true ),
				new ColumnConfiguration( TableString.StrategyFieldEvent, BlazeDbType.INT4),
				new ColumnConfiguration( TableString.StrategyFieldAutomation, BlazeDbType.BLOB),				
				new ColumnConfiguration( TableString.StrategyFieldEnabled, BlazeDbType.INT2)
			};
			ColumnConfiguration[] scheduledTask = new ColumnConfiguration[] {
				new ColumnConfiguration( TableString.ScheduledTaskFieldId, BlazeDbType.INT4, true ),
				new ColumnConfiguration( TableString.ScheduledTaskFieldTaskData, BlazeDbType.BLOB)
			};
			//ColumnConfiguration[] task = new ColumnConfiguration[] {
			//    new ColumnConfiguration( TableString.TaskFieldId, BlazeDbType.INT4, true ),
			//    new ColumnConfiguration( TableString.TaskFieldName, BlazeDbType.STRING),
			//    new ColumnConfiguration( TableString.TaskFieldAutomation, BlazeDbType.BLOB),	
			//    new ColumnConfiguration( TableString.TaskFieldInterval,BlazeDbType.INT4),
			//    new ColumnConfiguration( TableString.TaskFieldPeriodUnit, BlazeDbType.INT4),                
			//    new ColumnConfiguration( TableString.TaskFieldStart, BlazeDbType.DATETIME),
			//    new ColumnConfiguration( TableString.TaskFieldEnd, BlazeDbType.DATETIME),
			//    new ColumnConfiguration( TableString.TaskFieldSelectedDay, BlazeDbType.STRING),
			//    new ColumnConfiguration( TableString.TaskFieldSelectedMonth, BlazeDbType.STRING),
			//    new ColumnConfiguration( TableString.TaskFieldRepeatPeriod, BlazeDbType.INT4),
			//    new ColumnConfiguration( TableString.TaskFieldRepeatPersistenceTime, BlazeDbType.INT4),
			//    new ColumnConfiguration( TableString.StrategyFieldEnabled, BlazeDbType.INT2)
			//};
            ColumnConfiguration[] updateServer = new ColumnConfiguration[] {
				new ColumnConfiguration( TableString.UpdateServerFieldId, BlazeDbType.INT4, true ),
                new ColumnConfiguration( TableString.UpdateServerFieldAddress, BlazeDbType.SHORT_STRING),
                new ColumnConfiguration( TableString.UpdateServerFieldPort, BlazeDbType.INT2),
				new ColumnConfiguration( TableString.UpdateServerFieldUsername,BlazeDbType.STRING),
                new ColumnConfiguration( TableString.UpdateServerFieldPassword,BlazeDbType.STRING),
                new ColumnConfiguration( TableString.UpdateServerFieldLiteral,BlazeDbType.STRING),
                new ColumnConfiguration( TableString.UpdateServerFieldUpdateServerType,BlazeDbType.INT2)
			};
			ColumnConfiguration[] playerCount = new ColumnConfiguration[] {
				new ColumnConfiguration( TableString.PlayerCountFieldServerId, BlazeDbType.INT4, true ),
                new ColumnConfiguration( TableString.PlayerCountFieldRecordTime, BlazeDbType.DATETIME, true),
                new ColumnConfiguration( TableString.PlayerCountFieldMaxPlayerCount, BlazeDbType.INT2),
				new ColumnConfiguration( TableString.PlayerCountFieldMinPlayerCount, BlazeDbType.INT2),
                new ColumnConfiguration( TableString.PlayerCountFieldAveragePlayerCount, BlazeDbType.INT2)
			};

            ColumnConfiguration[] gmOpLog = new ColumnConfiguration[] {
				new ColumnConfiguration( TableString.GMOpLogFieldId, BlazeDbType.INT4, false,true,true,true,null),
                new ColumnConfiguration( TableString.GMOpLogFieldUserId,BlazeDbType.INT4),
                new ColumnConfiguration( TableString.GMOpLogFieldOperation,BlazeDbType.INT2),
                new ColumnConfiguration( TableString.GMOpLogFieldTarget,BlazeDbType.BLOB),
                new ColumnConfiguration( TableString.GMOpLogFieldServerId,BlazeDbType.INT4),
                new ColumnConfiguration( TableString.GMOpLogFieldDescription,BlazeDbType.BLOB),
                new ColumnConfiguration( TableString.GMOpLogFieldLogTime,BlazeDbType.DATETIME),
                new ColumnConfiguration( TableString.GMOpLogFieldTargetType,BlazeDbType.INT2)
			};

            ColumnConfiguration[] accountInfo = new ColumnConfiguration[] {
				new ColumnConfiguration( TableString.AccountInfoFieldId, BlazeDbType.INT4, false,true,true,true,null),
                new ColumnConfiguration( TableString.AccountInfoFieldName,BlazeDbType.STRING,false,true,false,false,null),
                new ColumnConfiguration( TableString.AccountInfoFieldPassword,BlazeDbType.STRING)
			};

            ColumnConfiguration[] ibShop = new ColumnConfiguration[] {
				new ColumnConfiguration( TableString.IbShopFieldId, BlazeDbType.INT4, false,true,true,true,null),
                new ColumnConfiguration( TableString.IbShopFieldTimeStamp,BlazeDbType.DATETIME),
                new ColumnConfiguration( TableString.IbShopFieldScript,BlazeDbType.BLOB)
			};

            ColumnConfiguration[] batchTask = new ColumnConfiguration[] {
				new ColumnConfiguration( TableString.BatchTaskId, BlazeDbType.INT4,true),
                new ColumnConfiguration( TableString.BatchTaskAutomation,BlazeDbType.BLOB),
                new ColumnConfiguration( TableString.BatchTaskStep,BlazeDbType.INT4),
                new ColumnConfiguration( TableString.BatchTaskServerIds,BlazeDbType.BLOB)
			};

            ColumnConfiguration[] serverEvent = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.ServerEventFieldServerId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.ServerEventFieldEventTime, BlazeDbType.DATETIME, true),
                new ColumnConfiguration(TableString.ServerEventFieldEventType, BlazeDbType.INT2)
            };

            ColumnConfiguration[] serverOperationLog = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.ServerOperationLogFieldId, BlazeDbType.INT8,false,true,true,true,null),
                new ColumnConfiguration(TableString.ServerOperationLogFieldOperationId, BlazeDbType.INT8),
                new ColumnConfiguration(TableString.ServerOperationLogFieldUserId, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.ServerOperationLogFieldServerOrGroup, BlazeDbType.INT2),
                new ColumnConfiguration(TableString.ServerOperationLogFieldTargetId, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.ServerOperationLogFieldOperationType, BlazeDbType.INT2),
                new ColumnConfiguration(TableString.ServerOperationLogFieldOperationResult, BlazeDbType.INT2),
                new ColumnConfiguration(TableString.ServerOperationLogFieldDescription, BlazeDbType.LONG_STRING),
                new ColumnConfiguration(TableString.ServerOperationLogFieldLogTime, BlazeDbType.DATETIME),
                new ColumnConfiguration(TableString.ServerOperationLogFieldFatherRegion, BlazeDbType.LONG_STRING)
            };

            ColumnConfiguration[] serverMap = new ColumnConfiguration[] {
				new ColumnConfiguration( TableString.ServerMapFieldId, BlazeDbType.INT4, true),
                new ColumnConfiguration( TableString.ServerMapFieldParentId, BlazeDbType.INT4),
                new ColumnConfiguration( TableString.ServerMapFieldName, BlazeDbType.STRING),
				new ColumnConfiguration( TableString.ServerMapFieldMapType,BlazeDbType.INT4),
                new ColumnConfiguration( TableString.ServerMapFieldIndex,BlazeDbType.INT4),
                new ColumnConfiguration( TableString.ServerMapFieldFlag,BlazeDbType.INT4),
                new ColumnConfiguration( TableString.ServerMapFieldMapServerId,BlazeDbType.INT4)
			};

			DbConfiguration dbCfg = new DbConfiguration(
				DbFactory.DefaultDbName,
				new TableConfiguration[] {
			        new TableConfiguration(TableString.ObjectTableName, colCfgsObj),
			        new TableConfiguration(TableString.UserTableName, colCfgsUser),
			        new TableConfiguration(TableString.UserGroupTableName, colCfgsGroup),
			        new TableConfiguration(TableString.UserInGroupTableName, colCfgsUserGroup),
			        new TableConfiguration(TableString.AceTableName, colCfgsAce),
					new TableConfiguration(TableString.GameServerTableName, colCfgsGameServer),
					new TableConfiguration(TableString.ServerGroupTableName, colCfgsServerGroup),
                    new TableConfiguration(TableString.ServerRegionTableName, colCfgsServerRegion),
					new TableConfiguration(TableString.GameLogTableName, colCfgsGameLog),
                    new TableConfiguration(TableString.ServerPlugInTableName, colCfgsServerPlugIn),
					new TableConfiguration(TableString.StrategyTableName, strategy),
					new TableConfiguration(TableString.ScheduledTaskTableName, scheduledTask),
                    new TableConfiguration(TableString.UpdateServerTableName, updateServer),
					new TableConfiguration(TableString.PlayerCountTableName, playerCount),
                    new TableConfiguration(TableString.GMOpLogTableName,gmOpLog),
                    new TableConfiguration(TableString.AccountInfoTableName,accountInfo),
                    new TableConfiguration(TableString.IbShopTableName,ibShop),
                    new TableConfiguration(TableString.BatchTaskTableName,batchTask),
                    new TableConfiguration(TableString.ServerEventTableName,serverEvent),
                    new TableConfiguration(TableString.ServerOperationLogTableName,serverOperationLog),
                    new TableConfiguration(TableString.ServerMapTableName,serverMap)
			        }
				);
			
			IBlazeDatabase db = DbFactory.GetDatabase();
			db.InitDatabase(dbCfg, rebuild);
		}
 private static XElement SerializeColumns(ColumnConfiguration f)
 {
     return new XElement("ColumnConfiguration",
                         Serialization.Serialize(f, Serialization.SerializerType.Xml, null));
 }
 public ColumnConfiguration GetColumnConfiguration()
 {
     var cc = new ColumnConfiguration
                  {
                      ContainerType = "StreamView",
                      Title = Title,
                      Uuid = Uuid,
                      Width = Width,
                      Position = Position
                  };
     cc.Mapping.Add("Filter", StreamConfiguration.Filters.Uuid);
     return cc;
 }