public override void CustomizeTypesInfo(ITypesInfo typesInfo) { base.CustomizeTypesInfo(typesInfo); CalculatedPersistentAliasHelper.CustomizeTypesInfo(typesInfo); ITypeInfo ClienteTypeInfo = typesInfo.FindTypeInfo(typeof(Cliente)); if (ClienteTypeInfo != null) { ClienteTypeInfo.AddAttribute(new DefaultClassOptionsAttribute()); ClienteTypeInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Clase de Cliente")); AppearanceAttribute attribute = new AppearanceAttribute("Back Color Red"); attribute.TargetItems = "*"; attribute.BackColor = "Red"; ClienteTypeInfo.AddAttribute(attribute); var NombreMemberInfo = ClienteTypeInfo.OwnMembers.Where(m => m.Name == "Nombre").FirstOrDefault(); if (NombreMemberInfo != null) { NombreMemberInfo.AddAttribute(new RuleRequiredFieldAttribute("Nombre es requerido", DefaultContexts.Save)); } } }
// *** HELPER FUNCTIONS *** // #region loadGamesFromModule protected void loadGamesFromModule(Module module) { Type[] types = module.GetTypes(); foreach (Type type in types) { object[] customAttrs = type.GetCustomAttributes(typeof(GameAttribute), false); if (customAttrs != null && customAttrs.Length >= 1) { foreach (object attr in customAttrs) { GameAttribute gameAttribute = (GameAttribute)attr; GameClasses.Add(gameAttribute.GameName, type); GameAttributes.Add(gameAttribute.GameName, gameAttribute); Environment.AddSymbol(gameAttribute.GameName, type); object[] appearanceAttrs = type.GetCustomAttributes(typeof(AppearanceAttribute), false); if (appearanceAttrs != null && customAttrs.Length >= 1) { foreach (object attr2 in appearanceAttrs) { AppearanceAttribute appearance = (AppearanceAttribute)attr2; if (appearance.Game != null) { if (AppearanceAttributes.ContainsKey(appearance.Game)) { AppearanceAttributes[appearance.Game] = appearance; } else { AppearanceAttributes.Add(appearance.Game, appearance); } } else { AppearanceAttributes.Add(gameAttribute.GameName, appearance); } } } } } } }
//added yaspa //private void application_CreateCustomLogonWindowObjectSpace(object sender, CreateCustomLogonWindowObjectSpaceEventArgs e) //{ // IObjectSpace objectSpace = ((XafApplication)sender).CreateObjectSpace(); // ((CustomLogonParametersForStandardAuthentication)e.LogonParameters).ObjectSpace = objectSpace; // e.ObjectSpace = objectSpace; //} //end public override void CustomizeTypesInfo(ITypesInfo typesInfo) { base.CustomizeTypesInfo(typesInfo); CalculatedPersistentAliasHelper.CustomizeTypesInfo(typesInfo); ITypeInfo BaseCatalogTypeInfo = typesInfo.FindTypeInfo(typeof(BaseCatalog)); ITypeInfo BalanceCatalogTypeInfo = typesInfo.FindTypeInfo(typeof(BalanceCatalog)); ITypeInfo CatalogTypeInfo = typesInfo.FindTypeInfo(typeof(Catalog)); ITypeInfo CompanyTypeInfo = typesInfo.FindTypeInfo(typeof(Company)); ITypeInfo CorrelativeTypeInfo = typesInfo.FindTypeInfo(typeof(Correlative)); ITypeInfo CostCenterTypeInfo = typesInfo.FindTypeInfo(typeof(CostCenter)); ITypeInfo CurrencyTypeInfo = typesInfo.FindTypeInfo(typeof(Currency)); ITypeInfo FiscalCalendarTypeInfo = typesInfo.FindTypeInfo(typeof(FiscalCalendar)); ITypeInfo FiscalCalendarCycleTypeInfo = typesInfo.FindTypeInfo(typeof(FiscalCalendarCycle)); ITypeInfo ItemTypeInfo = typesInfo.FindTypeInfo(typeof(Item)); ITypeInfo ItemDetailTypeInfo = typesInfo.FindTypeInfo(typeof(ItemDetail)); ITypeInfo ItemTypeTypeInfo = typesInfo.FindTypeInfo(typeof(ItemType)); ITypeInfo CompanyUserTypeInfo = typesInfo.FindTypeInfo(typeof(CompanyUser)); ITypeInfo CustomLogonTypeInfo = typesInfo.FindTypeInfo(typeof(CustomLogonParametersForStandardAuthentication)); ITypeInfo UserRoleTypeInfo = typesInfo.FindTypeInfo(typeof(UserRole)); ITypeInfo AuditableBaseTypeInfo = typesInfo.FindTypeInfo(typeof(AuditableBaseObject)); ITypeInfo CompanyBaseTypeInfo = typesInfo.FindTypeInfo(typeof(CompanyBaseObject)); ITypeInfo ConstsTypeInfo = typesInfo.FindTypeInfo(typeof(Consts)); ITypeInfo ObjectsDescriptionTypeInfo = typesInfo.FindTypeInfo(typeof(ObjectsDescription)); //BaseCatalog if (BaseCatalogTypeInfo != null) { BaseCatalogTypeInfo.AddAttribute(new DefaultClassOptionsAttribute()); IMemberInfo AccountNumberMemberInfo = BaseCatalogTypeInfo.OwnMembers.Where(m => m.Name == "AccountNumber").FirstOrDefault(); IMemberInfo NameMemberInfo = BaseCatalogTypeInfo.OwnMembers.Where(m => m.Name == "Name").FirstOrDefault(); if (AccountNumberMemberInfo != null && NameMemberInfo != null) { AccountNumberMemberInfo.AddAttribute(new SizeAttribute(SizeAttribute.DefaultStringMappingFieldSize)); NameMemberInfo.AddAttribute(new SizeAttribute(SizeAttribute.DefaultStringMappingFieldSize)); } } //BalanceCatalog if (BalanceCatalogTypeInfo != null) { BalanceCatalogTypeInfo.AddAttribute(new DefaultClassOptionsAttribute()); } //Catalog if (CatalogTypeInfo != null) { CatalogTypeInfo.AddAttribute(new DefaultClassOptionsAttribute()); IMemberInfo AccountNumberMemberInfo = CatalogTypeInfo.OwnMembers.Where(m => m.Name == "AccountNumber").FirstOrDefault(); IMemberInfo NameMemberInfo = CatalogTypeInfo.OwnMembers.Where(m => m.Name == "Name").FirstOrDefault(); if (AccountNumberMemberInfo != null && NameMemberInfo != null) { AccountNumberMemberInfo.AddAttribute(new SizeAttribute(SizeAttribute.DefaultStringMappingFieldSize)); NameMemberInfo.AddAttribute(new SizeAttribute(SizeAttribute.DefaultStringMappingFieldSize)); } } //Company if (CompanyTypeInfo != null) { CompanyTypeInfo.AddAttribute(new DefaultClassOptionsAttribute()); CompanyTypeInfo.AddAttribute(new NavigationItemAttribute("Catalogs")); CompanyTypeInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Companies")); CompanyTypeInfo.AddAttribute(new PersistentAttribute(Consts.TablePrefix + "COMPANY")); CompanyTypeInfo.AddAttribute(new ObjectsDescription("Companies Catalog")); CompanyTypeInfo.AddAttribute(new VisibleInReportsAttribute(false)); CompanyTypeInfo.AddAttribute(new DefaultPropertyAttribute("Name")); //CompanyTypeInfo.AddAttribute(new AssociationAttribute("User-Companies",typeof(CompanyUser))); IMemberInfo NameMemberInfo = CompanyTypeInfo.OwnMembers.Where(m => m.Name == "Name").FirstOrDefault(); IMemberInfo CodeMemberInfo = CompanyTypeInfo.OwnMembers.Where(m => m.Name == "Code").FirstOrDefault(); IMemberInfo CurrencyMemberInfo = CompanyTypeInfo.OwnMembers.Where(m => m.Name == "Currency").FirstOrDefault(); IMemberInfo UsersMemberInfo = CompanyTypeInfo.OwnMembers.Where(m => m.Name == "Users").FirstOrDefault(); if (NameMemberInfo != null && CodeMemberInfo != null && CurrencyMemberInfo != null && UsersMemberInfo != null) { NameMemberInfo.AddAttribute(new SizeAttribute(SizeAttribute.DefaultStringMappingFieldSize)); NameMemberInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Name")); NameMemberInfo.AddAttribute(new PersistentAttribute("NAME")); NameMemberInfo.AddAttribute(new ObjectsDescription("Company Name")); // CodeMemberInfo.AddAttribute(new SizeAttribute(SizeAttribute.DefaultStringMappingFieldSize)); CodeMemberInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Code")); CodeMemberInfo.AddAttribute(new PersistentAttribute("CODE")); CodeMemberInfo.AddAttribute(new ObjectsDescription("Company Code")); // CurrencyMemberInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Currency")); CurrencyMemberInfo.AddAttribute(new PersistentAttribute("CURRENCY")); CurrencyMemberInfo.AddAttribute(new ObjectsDescription("Company Transactions Currency")); // UsersMemberInfo.AddAttribute(new AssociationAttribute("Company-User", typeof(CompanyUser)), true); } } //CompanyUser if (CompanyUserTypeInfo != null) { CompanyUserTypeInfo.AddAttribute(new DefaultClassOptionsAttribute()); CompanyUserTypeInfo.AddAttribute(new NavigationItemAttribute("Security")); CompanyUserTypeInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Users")); CompanyUserTypeInfo.AddAttribute(new PersistentAttribute(Consts.TablePrefix + "USER")); CompanyUserTypeInfo.AddAttribute(new ObjectsDescription("System Users")); CompanyUserTypeInfo.AddAttribute(new VisibleInReportsAttribute(false)); CompanyUserTypeInfo.AddAttribute(new DefaultPropertyAttribute("FullName")); CompanyUserTypeInfo.AddAttribute(new ImageNameAttribute("BO_Contact")); IMemberInfo FullNameMemberInfo = CompanyUserTypeInfo.OwnMembers.Where(m => m.Name == "FullName").FirstOrDefault(); IMemberInfo CompaniesMemberInfo = CompanyUserTypeInfo.OwnMembers.Where(m => m.Name == "Companies").FirstOrDefault(); if (FullNameMemberInfo != null && CompaniesMemberInfo != null) { FullNameMemberInfo.AddAttribute(new SizeAttribute(SizeAttribute.DefaultStringMappingFieldSize)); FullNameMemberInfo.AddAttribute(new PersistentAttribute("FULL_NAME")); FullNameMemberInfo.AddAttribute(new ObjectsDescription("User Full Name")); CompaniesMemberInfo.AddAttribute(new AssociationAttribute("Company-User", typeof(Company)), true); } } //Correlative if (CorrelativeTypeInfo != null) { CorrelativeTypeInfo.AddAttribute(new DefaultClassOptionsAttribute()); } //CostCenter if (CostCenterTypeInfo != null) { CostCenterTypeInfo.AddAttribute(new DefaultClassOptionsAttribute()); CostCenterTypeInfo.AddAttribute(new NavigationItemAttribute("Catalogs")); CostCenterTypeInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Cost Center")); CostCenterTypeInfo.AddAttribute(new PersistentAttribute(Consts.TablePrefix + "COST_CENTER")); CostCenterTypeInfo.AddAttribute(new ObjectsDescription("CostCenter Catalog")); CostCenterTypeInfo.AddAttribute(new VisibleInReportsAttribute(false)); CostCenterTypeInfo.AddAttribute(new DefaultPropertyAttribute("Name")); IMemberInfo NameMemberInfo = CostCenterTypeInfo.OwnMembers.Where(m => m.Name == "Name").FirstOrDefault(); if (NameMemberInfo != null) { NameMemberInfo.AddAttribute(new SizeAttribute(SizeAttribute.DefaultStringMappingFieldSize)); } } //Currency if (CurrencyTypeInfo != null) { CurrencyTypeInfo.AddAttribute(new DefaultClassOptionsAttribute()); CurrencyTypeInfo.AddAttribute(new NavigationItemAttribute("Catalogs")); CurrencyTypeInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Currency")); CurrencyTypeInfo.AddAttribute(new PersistentAttribute(Consts.TablePrefix + "CURRENCY")); CurrencyTypeInfo.AddAttribute(new ObjectsDescription("Currency Catalog")); CurrencyTypeInfo.AddAttribute(new VisibleInReportsAttribute(false)); CurrencyTypeInfo.AddAttribute(new DefaultPropertyAttribute("Description")); CurrencyTypeInfo.AddAttribute(new ImageNameAttribute("BO_Contact")); IMemberInfo DescriptionMemberInfo = CurrencyTypeInfo.OwnMembers.Where(m => m.Name == "Description").FirstOrDefault(); IMemberInfo SymbolMemberInfo = CurrencyTypeInfo.OwnMembers.Where(m => m.Name == "Symbol").FirstOrDefault(); if (SymbolMemberInfo != null && DescriptionMemberInfo != null) { DescriptionMemberInfo.AddAttribute(new SizeAttribute(SizeAttribute.DefaultStringMappingFieldSize)); DescriptionMemberInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Description")); DescriptionMemberInfo.AddAttribute(new PersistentAttribute("DESCRIPTION")); DescriptionMemberInfo.AddAttribute(new ObjectsDescription("Description or Currency Name")); // SymbolMemberInfo.AddAttribute(new SizeAttribute(SizeAttribute.DefaultStringMappingFieldSize)); SymbolMemberInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Symbol")); SymbolMemberInfo.AddAttribute(new PersistentAttribute("SYMBOL")); SymbolMemberInfo.AddAttribute(new ObjectsDescription("World Wide Representative Currency Character")); } } //FiscalCalendar if (FiscalCalendarTypeInfo != null) { FiscalCalendarTypeInfo.AddAttribute(new DefaultClassOptionsAttribute()); FiscalCalendarTypeInfo.AddAttribute(new NavigationItemAttribute("Catalogs")); FiscalCalendarTypeInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Fiscal Calendar")); FiscalCalendarTypeInfo.AddAttribute(new PersistentAttribute(Consts.TablePrefix + "FISCAL_CALENDAR")); FiscalCalendarTypeInfo.AddAttribute(new ObjectsDescription("Work Calendar")); FiscalCalendarTypeInfo.AddAttribute(new VisibleInReportsAttribute(false)); FiscalCalendarTypeInfo.AddAttribute(new DefaultPropertyAttribute("Initial")); IMemberInfo CycleMemberInfo = FiscalCalendarTypeInfo.OwnMembers.Where(m => m.Name == "Cycle").FirstOrDefault(); if (CycleMemberInfo != null) { CycleMemberInfo.AddAttribute(new AssociationAttribute("FiscalCalendar-FiscalCalendarCycle", typeof(FiscalCalendarCycle)), true); CycleMemberInfo.AddAttribute(new DevExpress.Xpo.AggregatedAttribute(), true); } } //FiscalCalendarCycle if (FiscalCalendarCycleTypeInfo != null) { FiscalCalendarCycleTypeInfo.AddAttribute(new DefaultClassOptionsAttribute()); FiscalCalendarCycleTypeInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Cycle")); FiscalCalendarCycleTypeInfo.AddAttribute(new PersistentAttribute(Consts.TablePrefix + "FISCAL_CALENDAR_CYCLES")); FiscalCalendarCycleTypeInfo.AddAttribute(new ObjectsDescription("Fiscal Calendar Cycles")); FiscalCalendarCycleTypeInfo.AddAttribute(new VisibleInReportsAttribute(false)); FiscalCalendarCycleTypeInfo.AddAttribute(new DefaultPropertyAttribute("Item")); IMemberInfo FiscalCalendarMemberInfo = FiscalCalendarCycleTypeInfo.OwnMembers.Where(m => m.Name == "FiscalCalendar").FirstOrDefault(); if (FiscalCalendarMemberInfo != null) { FiscalCalendarMemberInfo.AddAttribute(new AssociationAttribute("FiscalCalendar-FiscalCalendarCycle", typeof(FiscalCalendar)), true); } } //Item or Invoice if (ItemTypeInfo != null) { ItemTypeInfo.AddAttribute(new DefaultClassOptionsAttribute()); IMemberInfo ConceptMemberInfo = ItemTypeInfo.OwnMembers.Where(m => m.Name == "Concept").FirstOrDefault(); IMemberInfo DetailMemberInfo = ItemTypeInfo.OwnMembers.Where(m => m.Name == "Details").FirstOrDefault(); if (ConceptMemberInfo != null) { ConceptMemberInfo.AddAttribute(new SizeAttribute(250)); DetailMemberInfo.AddAttribute(new AssociationAttribute("Item-ItemDetails", typeof(ItemDetail)), true); DetailMemberInfo.AddAttribute(new DevExpress.Xpo.AggregatedAttribute(), true); } } //ItemDetail or InvoiceDetail if (ItemDetailTypeInfo != null) { ItemDetailTypeInfo.AddAttribute(new DefaultClassOptionsAttribute()); IMemberInfo ConceptMemberInfo = ItemDetailTypeInfo.OwnMembers.Where(m => m.Name == "Concept").FirstOrDefault(); IMemberInfo ItemMemberInfo = ItemDetailTypeInfo.OwnMembers.Where(m => m.Name == "Item").FirstOrDefault(); if (ConceptMemberInfo != null) { ConceptMemberInfo.AddAttribute(new SizeAttribute(SizeAttribute.Unlimited)); ItemMemberInfo.AddAttribute(new AssociationAttribute("Item-ItemDetails", typeof(Item)), true); } } //ItemType or InvoiceType if (ItemTypeTypeInfo != null) { ItemTypeTypeInfo.AddAttribute(new DefaultClassOptionsAttribute()); IMemberInfo NameMemberInfo = ItemTypeTypeInfo.OwnMembers.Where(m => m.Name == "Name").FirstOrDefault(); IMemberInfo CodeMemberInfo = ItemTypeTypeInfo.OwnMembers.Where(m => m.Name == "Code").FirstOrDefault(); if (NameMemberInfo != null && CodeMemberInfo != null) { NameMemberInfo.AddAttribute(new SizeAttribute(SizeAttribute.DefaultStringMappingFieldSize)); CodeMemberInfo.AddAttribute(new SizeAttribute(SizeAttribute.DefaultStringMappingFieldSize)); } } //CustomLogonParametersForStandardAuthentication if (CustomLogonTypeInfo != null) { CustomLogonTypeInfo.AddAttribute(new DomainComponentAttribute()); } //User Role if (UserRoleTypeInfo != null) { UserRoleTypeInfo.AddAttribute(new DefaultClassOptionsAttribute()); UserRoleTypeInfo.AddAttribute(new NavigationItemAttribute("Security")); UserRoleTypeInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Users Roles")); UserRoleTypeInfo.AddAttribute(new PersistentAttribute(Consts.TablePrefix + "USER_ROLE")); UserRoleTypeInfo.AddAttribute(new ObjectsDescription("System Users Roles")); UserRoleTypeInfo.AddAttribute(new ImageNameAttribute("BO_Contact")); } //AuditableBaseObject if (AuditableBaseTypeInfo != null) { AuditableBaseTypeInfo.AddAttribute(new NonPersistentAttribute()); IMemberInfo CreatedByMemberInfo = AuditableBaseTypeInfo.OwnMembers.Where(m => m.Name == "CreatedBy").FirstOrDefault(); IMemberInfo ModifiedByMemberInfo = AuditableBaseTypeInfo.OwnMembers.Where(m => m.Name == "ModifiedBy").FirstOrDefault(); IMemberInfo CreationDateMemberInfo = AuditableBaseTypeInfo.OwnMembers.Where(m => m.Name == "CreationDate").FirstOrDefault(); IMemberInfo ModificationDateMemberInfo = AuditableBaseTypeInfo.OwnMembers.Where(m => m.Name == "ModificationDate").FirstOrDefault(); IMemberInfo UserMemberInfo = AuditableBaseTypeInfo.OwnMembers.Where(m => m.Name == "User").FirstOrDefault(); if (CreatedByMemberInfo != null && ModifiedByMemberInfo != null && CreationDateMemberInfo != null && ModificationDateMemberInfo != null && UserMemberInfo != null) { CreatedByMemberInfo.AddAttribute(new SizeAttribute(SizeAttribute.DefaultStringMappingFieldSize)); CreatedByMemberInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Created By")); CreatedByMemberInfo.AddAttribute(new PersistentAttribute("CREATED_BY")); CreatedByMemberInfo.AddAttribute(new ObjectsDescription("Name of the record creator ")); CreatedByMemberInfo.AddAttribute(new VisibleInDetailViewAttribute(false)); CreatedByMemberInfo.AddAttribute(new VisibleInListViewAttribute(false)); CreatedByMemberInfo.AddAttribute(new VisibleInLookupListViewAttribute(false)); AppearanceAttribute attribute = new AppearanceAttribute("Disable CreatedBy"); attribute.TargetItems = "CreatedBy"; attribute.Enabled = false; CreatedByMemberInfo.AddAttribute(attribute); // ModifiedByMemberInfo.AddAttribute(new SizeAttribute(SizeAttribute.DefaultStringMappingFieldSize)); ModifiedByMemberInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Modified By")); ModifiedByMemberInfo.AddAttribute(new PersistentAttribute("MODIFIED_BY")); ModifiedByMemberInfo.AddAttribute(new ObjectsDescription("Last user that modified the record")); ModifiedByMemberInfo.AddAttribute(new VisibleInDetailViewAttribute(false)); ModifiedByMemberInfo.AddAttribute(new VisibleInListViewAttribute(false)); ModifiedByMemberInfo.AddAttribute(new VisibleInLookupListViewAttribute(false)); AppearanceAttribute attribute2 = new AppearanceAttribute("Disable ModifiedBy"); attribute2.TargetItems = "ModifiedBy"; attribute2.Enabled = false; ModifiedByMemberInfo.AddAttribute(attribute2); // CreationDateMemberInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Creation Date")); CreationDateMemberInfo.AddAttribute(new PersistentAttribute("CREATION_DATE")); CreationDateMemberInfo.AddAttribute(new ObjectsDescription("Record's Creation Date")); CreationDateMemberInfo.AddAttribute(new VisibleInDetailViewAttribute(false)); CreationDateMemberInfo.AddAttribute(new VisibleInListViewAttribute(false)); CreationDateMemberInfo.AddAttribute(new VisibleInLookupListViewAttribute(false)); AppearanceAttribute attribute3 = new AppearanceAttribute("Disable CreationDate"); attribute3.TargetItems = "CreationDate"; attribute3.Enabled = false; CreationDateMemberInfo.AddAttribute(attribute3); // ModificationDateMemberInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Modification Date")); ModificationDateMemberInfo.AddAttribute(new PersistentAttribute("MODIFICATION_DATE")); ModificationDateMemberInfo.AddAttribute(new ObjectsDescription("Record's Creation Date")); ModificationDateMemberInfo.AddAttribute(new VisibleInDetailViewAttribute(false)); ModificationDateMemberInfo.AddAttribute(new VisibleInListViewAttribute(false)); ModificationDateMemberInfo.AddAttribute(new VisibleInLookupListViewAttribute(false)); AppearanceAttribute attribute4 = new AppearanceAttribute("Disable ModificationDate"); attribute4.TargetItems = "ModificationDate"; attribute4.Enabled = false; ModificationDateMemberInfo.AddAttribute(attribute4); // UserMemberInfo.AddAttribute(new ModelDefaultAttribute("Caption", "User")); UserMemberInfo.AddAttribute(new PersistentAttribute("USER")); UserMemberInfo.AddAttribute(new ObjectsDescription("User that Create or Modify the Record")); UserMemberInfo.AddAttribute(new VisibleInDetailViewAttribute(false)); UserMemberInfo.AddAttribute(new VisibleInListViewAttribute(false)); UserMemberInfo.AddAttribute(new VisibleInLookupListViewAttribute(false)); AppearanceAttribute attribute5 = new AppearanceAttribute("Disable User"); attribute5.TargetItems = "User"; attribute5.Enabled = false; UserMemberInfo.AddAttribute(attribute5); } } //CompanyBaseObject if (CompanyBaseTypeInfo != null) { CompanyBaseTypeInfo.AddAttribute(new NonPersistentAttribute()); IMemberInfo CompanyBaseMemberInfo = AuditableBaseTypeInfo.OwnMembers.Where(m => m.Name == "Company").FirstOrDefault(); if (CompanyBaseMemberInfo != null) { CompanyBaseMemberInfo.AddAttribute(new ModelDefaultAttribute("Caption", "Company")); CompanyBaseMemberInfo.AddAttribute(new PersistentAttribute("COMPANY")); CompanyBaseMemberInfo.AddAttribute(new ObjectsDescription("Reference to the Owner Company of the Record")); CompanyBaseMemberInfo.AddAttribute(new VisibleInDetailViewAttribute(false)); CompanyBaseMemberInfo.AddAttribute(new VisibleInListViewAttribute(false)); CompanyBaseMemberInfo.AddAttribute(new VisibleInLookupListViewAttribute(false)); AppearanceAttribute attribute6 = new AppearanceAttribute("Disable Company"); attribute6.TargetItems = "Company"; attribute6.Enabled = false; CompanyBaseMemberInfo.AddAttribute(attribute6); } } //Consts if (ConstsTypeInfo != null) { ConstsTypeInfo.AddAttribute(new DataContractAttribute()); IMemberInfo TablePrefixMemberInfo = ConstsTypeInfo.OwnMembers.Where(m => m.Name == "TablePrefix").FirstOrDefault(); IMemberInfo TwoDecimalNumericMaskMemberInfo = ConstsTypeInfo.OwnMembers.Where(m => m.Name == "TwoDecimalNumericMask").FirstOrDefault(); IMemberInfo SixDecimalNumericMaskxMemberInfo = ConstsTypeInfo.OwnMembers.Where(m => m.Name == "SixDecimalNumericMask").FirstOrDefault(); IMemberInfo NoDecimalNumericMaskMemberInfo = ConstsTypeInfo.OwnMembers.Where(m => m.Name == "NoDecimalNumericMask").FirstOrDefault(); if (TablePrefixMemberInfo != null && TwoDecimalNumericMaskMemberInfo != null && SixDecimalNumericMaskxMemberInfo != null && NoDecimalNumericMaskMemberInfo != null) { TablePrefixMemberInfo.AddAttribute(new DataMemberAttribute()); TwoDecimalNumericMaskMemberInfo.AddAttribute(new DataMemberAttribute()); SixDecimalNumericMaskxMemberInfo.AddAttribute(new DataMemberAttribute()); NoDecimalNumericMaskMemberInfo.AddAttribute(new DataMemberAttribute()); } } //ObjectDescription if (ObjectsDescriptionTypeInfo != null) { ObjectsDescriptionTypeInfo.AddAttribute(new AttributeUsageAttribute(AttributeTargets.Class)); ObjectsDescriptionTypeInfo.AddAttribute(new AttributeUsageAttribute(AttributeTargets.Property)); } }
public void AddGame(PartialDefinition partial) { object baseObj = globalEnvironment.LookupSymbol(partial.BaseName); if (baseObj == null) { throw new Exception("Specified base game is unknown: " + partial.BaseName); } if (!(baseObj is Type)) { throw new Exception("Specified base game is not of correct type: " + partial.BaseName); } Type baseGameType = (Type)baseObj; if (!baseGameType.IsSubclassOf(typeof(Game))) { throw new Exception("Specified base game is not of correct type: " + partial.BaseName); } Type newGameType = classFactory.CreateGameWrapper(moduleBuilder, baseGameType, partial); object[] attrobjs = baseGameType.GetCustomAttributes(typeof(GameAttribute), false); GameAttribute baseGameAttribute = (GameAttribute)attrobjs[0]; int[] geometryParameters = baseGameAttribute.GeometryParameters; if (geometryParameters.Length == 0) { geometryParameters = new int[] { (int)(partial.VariableAssignments["NumFiles"]), (int)(partial.VariableAssignments["NumRanks"]) } } ; GameAttribute newGameAttribute = new GameAttribute(partial.Name, baseGameAttribute.GeometryType, geometryParameters); AppearanceAttribute newAppearanceAttr = new AppearanceAttribute(); bool appearancePropertiesEncountered = false; if (partial.VariableAssignments.ContainsKey("Invented")) { newGameAttribute.Invented = (string)partial.VariableAssignments["Invented"]; } if (partial.VariableAssignments.ContainsKey("InventedBy")) { newGameAttribute.InventedBy = (string)partial.VariableAssignments["InventedBy"]; } if (partial.VariableAssignments.ContainsKey("GameDescription1")) { newGameAttribute.GameDescription1 = (string)partial.VariableAssignments["GameDescription1"]; if (partial.VariableAssignments.ContainsKey("GameDescription2")) { newGameAttribute.GameDescription2 = (string)partial.VariableAssignments["GameDescription2"]; } } if (partial.VariableAssignments.ContainsKey("Tags")) { newGameAttribute.Tags = (string)partial.VariableAssignments["Tags"]; } else { newGameAttribute.Tags = ""; } if (partial.VariableAssignments.ContainsKey("ColorScheme")) { appearancePropertiesEncountered = true; newAppearanceAttr.ColorScheme = (string)partial.VariableAssignments["ColorScheme"]; } if (partial.VariableAssignments.ContainsKey("NumberOfColors")) { appearancePropertiesEncountered = true; newAppearanceAttr.NumberOfSquareColors = Convert.ToInt32(partial.VariableAssignments["NumberOfColors"]); } if (partial.VariableAssignments.ContainsKey("PieceSet")) { appearancePropertiesEncountered = true; newAppearanceAttr.PieceSet = (string)partial.VariableAssignments["PieceSet"]; } if (partial.VariableAssignments.ContainsKey("Player1Color")) { appearancePropertiesEncountered = true; newAppearanceAttr.Player1Color = (string)partial.VariableAssignments["Player1Color"]; } if (partial.VariableAssignments.ContainsKey("Player2Color")) { appearancePropertiesEncountered = true; newAppearanceAttr.Player1Color = (string)partial.VariableAssignments["Player2Color"]; } GameTypes.Add(partial.Name, newGameType); GameAttributes.Add(partial.Name, newGameAttribute); if (appearancePropertiesEncountered) { GameAppearances.Add(partial.Name, newAppearanceAttr); } }
public static Theme CreateTheme(Game game) { // Load theme from RegistryKey if it exists. This will restore // the theme used last time this game was played RegistryKey gameKey = getKeyForGame(game, false); if (gameKey != null) { game.RegistryKey = gameKey; return(loadThemeFromRegistry(game, gameKey)); } // Defaults ColorScheme colorScheme = ColorSchemeLibrary.Default; PieceSet pieceSet = PieceSetLibrary.Default; int numColors = 2; // Find AppearanceAttribute and update defaults (if it exists) object[] attrs = null; if (Program.Manager.AppearanceAttributes.ContainsKey(game.Name)) { attrs = new object[] { Program.Manager.AppearanceAttributes[game.Name] } } ; else { attrs = game.GetType().GetCustomAttributes(typeof(AppearanceAttribute), false); } if (attrs != null && attrs.Length >= 1) { AppearanceAttribute appearance = (AppearanceAttribute)attrs[0]; if (appearance.Game != null && appearance.Game != game.Name) { appearance = null; } numColors = appearance != null ? appearance.NumberOfSquareColors : 2; if (appearance != null && appearance.ColorScheme != null) { if (ColorSchemeLibrary.Contains(appearance.ColorScheme)) { colorScheme = ColorSchemeLibrary.Lookup(appearance.ColorScheme); } } if (appearance != null && appearance.PieceSet != null) { if (PieceSetLibrary.Contains(appearance.PieceSet)) { pieceSet = PieceSetLibrary.Lookup(appearance.PieceSet); } } bool colorSchemeChanged = false; if (appearance != null && appearance.Player1Color != null) { string[] colorNumbers = appearance.Player1Color.Split(','); colorScheme.PlayerColors[0] = Color.FromArgb(Convert.ToInt32(colorNumbers[0]), Convert.ToInt32(colorNumbers[1]), Convert.ToInt32(colorNumbers[2])); colorSchemeChanged = true; } if (appearance != null && appearance.Player2Color != null) { string[] colorNumbers = appearance.Player2Color.Split(','); colorScheme.PlayerColors[1] = Color.FromArgb(Convert.ToInt32(colorNumbers[0]), Convert.ToInt32(colorNumbers[1]), Convert.ToInt32(colorNumbers[2])); colorSchemeChanged = true; } if (colorSchemeChanged) { colorScheme.Modified = true; colorScheme.Name = "(custom)"; } game.NumberOfSquareColors = numColors; } gameKey = getKeyForGame(game, true); string customThemeName = null; if (game.GetCustomThemes() != null) { customThemeName = game.GetDefaultCustomTheme(); } Theme theme = new Theme(colorScheme, pieceSet, numColors, customThemeName); theme.SaveToRegistry(gameKey); return(theme); }
private static Theme loadThemeFromRegistry(Game game, RegistryKey gameKey) { // find AppearanceAttribute (if any) to fill in any data missing // from the registry key with game defaults AppearanceAttribute appearance = null; object[] attrs; if (Program.Manager.AppearanceAttributes.ContainsKey(game.Name)) { attrs = new object[] { Program.Manager.AppearanceAttributes[game.Name] } } ; else { attrs = game.GetType().GetCustomAttributes(typeof(AppearanceAttribute), true); } if (attrs.Length >= 1) { appearance = (AppearanceAttribute)attrs[0]; if (appearance.Game != null && appearance.Game != game.Name) { appearance = null; } } // get number of colors object objNSquareColors = gameKey.GetValue("NSquareColors"); if (objNSquareColors == null) { if (appearance != null) { objNSquareColors = appearance.NumberOfSquareColors; } else { objNSquareColors = 2; } gameKey.SetValue("NSquareColors", objNSquareColors); } // get color scheme object objColorSchemeName = gameKey.GetValue("ColorScheme"); ColorScheme scheme; if (objColorSchemeName == null) { scheme = new ColorScheme(gameKey); } else { if (ColorSchemeLibrary.Contains((string)objColorSchemeName)) { scheme = ColorSchemeLibrary.Lookup((string)objColorSchemeName); } else { scheme = ColorSchemeLibrary.Default; } } // get piece set object objPieceSetName = gameKey.GetValue("PieceSet"); PieceSet pieceSet = null; if (objPieceSetName == null) { if (appearance != null) { if (PieceSetLibrary.Contains(appearance.PieceSet)) { pieceSet = PieceSetLibrary.Lookup(appearance.PieceSet); } else { pieceSet = PieceSetLibrary.Default; } } else { pieceSet = PieceSetLibrary.Default; } gameKey.SetValue("PieceSet", pieceSet.Name); } else if (PieceSetLibrary.Contains((string)objPieceSetName)) { pieceSet = PieceSetLibrary.Lookup((string)objPieceSetName); } else { pieceSet = PieceSetLibrary.Default; } // get custom theme name string customThemeName = (string)gameKey.GetValue("CustomTheme"); // create the Theme and return return(new Theme(scheme, pieceSet, (int)objNSquareColors, customThemeName)); }