Ejemplo n.º 1
0
        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));
                }
            }
        }
Ejemplo n.º 2
0
        // *** 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);
                                }
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
        //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));
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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));
        }