예제 #1
0
        public List <int> RetrieveLanguageIdsFromRules()
        {
            List <int> list = new List <int>();

            foreach (KeyValuePair <int, ICategoryDefinition> categoryDefinition in Categories)
            {
                if (!categoryDefinition.Value.Enabled)
                {
                    continue;
                }

                foreach (KeyValuePair <int, IRuleDefinition> ruleDefinition in categoryDefinition.Value.Rules)
                {
                    if (!ruleDefinition.Value.Enabled)
                    {
                        continue;
                    }

                    IConfigurationProxy configProxy     = ProxyHome.Instance.RetrieveConfigurationProxy(ConfigKeyKeeper.Instance.AccessKey);
                    IRuleDeclaration    ruleDeclaration = configProxy.RuleDeclarationFromCategoryIdAndRuleId(categoryDefinition.Value.CategoryDeclarationReferenceId, ruleDefinition.Value.RuleDeclarationReferenceId);

                    foreach (KeyValuePair <int, ILanguageDeclaration> pair in ruleDeclaration.Languages)
                    {
                        ILanguageDeclaration languageReference = pair.Value;
                        if (!list.Contains(languageReference.Id))
                        {
                            list.Add(languageReference.Id);
                        }
                    }
                }
            }
            return(list);
        }
예제 #2
0
        public static ILanguageDeclaration LanguageDeclarationMapper(Model.LanguageDeclaration languageDeclaration)
        {
            ILanguageDeclaration language = null;

            try
            {
                language = ConfigurationComponentFactory().ConfigurationFactory <ILanguageDeclaration>(typeof(ILanguageDeclaration));
            }
            catch (Exception e)
            {
                throw new DataAccessComponentException(null, -1, "Configuration proxy factory failure - unable to create an instance of " + typeof(ILanguageDeclaration) + "?", e);
            }


            try
            {
                language.Id        = languageDeclaration.Id;
                language.Name      = languageDeclaration.Name;
                language.Extension = languageDeclaration.Extension;
            }
            catch (Exception e)
            {
                throw new DataAccessComponentException(null, -1, "Mapping process failure?", e);
            }
            return(language);
        }
예제 #3
0
 public static Model.LanguageDeclaration LanguageDeclarationMapper(ILanguageDeclaration declaration, CodeAnalyzerContainer context)
 {
     Model.LanguageDeclaration languageDeclaration = context.LanguageDeclaration.SingleOrDefault(l => l.Id == declaration.Id);
     if (languageDeclaration == null)
         return new Model.LanguageDeclaration
         {
             Name      = declaration.Name,
             Extension = declaration.Extension,
         };
     return languageDeclaration;
 }
예제 #4
0
 public static Model.LanguageDeclaration LanguageDeclarationMapper(ILanguageDeclaration declaration, CodeAnalyzerContainer context)
 {
     Model.LanguageDeclaration languageDeclaration = context.LanguageDeclaration.SingleOrDefault(l => l.Id == declaration.Id);
     if (languageDeclaration == null)
     {
         return new Model.LanguageDeclaration
                {
                    Name      = declaration.Name,
                    Extension = declaration.Extension,
                }
     }
     ;
     return(languageDeclaration);
 }
예제 #5
0
        public IEnumerable <ILanguageDeclaration> LoadLanguageDeclarations()
        {
            using (CodeAnalyzerContainer context = new CodeAnalyzerContainer())
            {
                var result = context.LanguageDeclaration.Select(l => l);
                //var result = from languages in context.LanguageDeclaration
                //						 select languages;


                List <ILanguageDeclaration> domainLanguageDeclarations = new List <ILanguageDeclaration>();
                foreach (LanguageDeclaration lang in result)
                {
                    ILanguageDeclaration l = ToDomainModelMapper.LanguageDeclarationMapper(lang);

                    domainLanguageDeclarations.Add(l);
                }
                return(domainLanguageDeclarations);
            }
        }
예제 #6
0
        private bool ValidateLanguage(ILanguageDeclaration languageDeclaration)
        {
            if (string.IsNullOrEmpty(languageDeclaration.Extension))
            {
                Log.Error(string.Format("No 'Extension' defined for language '{0}' with ID='{1}'.", languageDeclaration.Name, languageDeclaration.Id));
                return(false);
            }

            if (!languageDeclaration.Extension.StartsWith("*."))
            {
                Log.Error(string.Format("The 'Extension' must start with '*.' and it didn't for language '{0}' with ID='{1}'.", languageDeclaration.Name, languageDeclaration.Id));
                return(false);
            }

            if (languageDeclaration.Extension.Length < 2)
            {
                Log.Error(string.Format("The 'Extension' must be at least 2 characters long and it wasn't for language '{0}' with ID='{1}'.", languageDeclaration.Name, languageDeclaration.Id));
                return(false);
            }
            return(true);
        }
예제 #7
0
            public void ConfigurationFactory_AllSupportedTypes_ReturnsValidObject()
            {
                ConfigurationComponentFactory factory = ConfigurationComponentFactory.Instance;

                factory.InitializeComponentAccessPermissions(AppManager);

                Debug.Assert(factory != null, "proxy != null");
                ILanguageDeclaration languageDeclaration = factory.ConfigurationFactory <ILanguageDeclaration>(typeof(ILanguageDeclaration));
                IRuleDeclaration     ruleDeclaration     = factory.ConfigurationFactory <IRuleDeclaration>(typeof(IRuleDeclaration));
                IProjectDefinition   projectDefinition   = factory.ConfigurationFactory <IProjectDefinition>(typeof(IProjectDefinition));
                ICategoryDefinition  categoryDefinition  = factory.ConfigurationFactory <ICategoryDefinition>(typeof(ICategoryDefinition));
                IRuleDefinition      ruleDefinition      = factory.ConfigurationFactory <IRuleDefinition>(typeof(IRuleDefinition));
                IDirectoryDefinition directoryDefinition = factory.ConfigurationFactory <IDirectoryDefinition>(typeof(IDirectoryDefinition));
                IFileDefinition      fileDefinition      = factory.ConfigurationFactory <IFileDefinition>(typeof(IFileDefinition));

                Assert.IsNotNull(languageDeclaration);
                Assert.IsNotNull(ruleDeclaration);
                Assert.IsNotNull(projectDefinition);
                Assert.IsNotNull(categoryDefinition);
                Assert.IsNotNull(ruleDefinition);
                Assert.IsNotNull(directoryDefinition);
                Assert.IsNotNull(fileDefinition);
            }
예제 #8
0
        public static XmlNode CreateLanguageDeclarationXmlNode(XmlDocument doc, ILanguageDeclaration declaration)
        {
            // <LanguageDeclaration Id="{C224974D-E493-42C2-960F-DBE6BB64C946}">
            //   <Name><CDATA ELEMENT></Name>
            //   <Extension>*.cs</Extension>
            // </LanguageDeclaration>
            XmlNode      languageDeclarationNode = doc.CreateNode(XmlNodeType.Element, "LanguageDeclaration", null);
            XmlNode      nameNode      = doc.CreateNode(XmlNodeType.Element, "Name", null);
            XmlNode      extensionNode = doc.CreateNode(XmlNodeType.Element, "Extension", null);
            XmlAttribute idAttrib      = doc.CreateAttribute("Id");

            idAttrib.Value = declaration.Id.ToString();
            languageDeclarationNode.Attributes.Append(idAttrib);

            XmlCDataSection cdataNameNode = doc.CreateCDataSection(declaration.Name);

            nameNode.AppendChild(cdataNameNode);

            extensionNode.InnerText = declaration.Extension;

            languageDeclarationNode.AppendChild(nameNode);
            languageDeclarationNode.AppendChild(extensionNode);
            return(languageDeclarationNode);
        }
예제 #9
0
        private bool ValidateLanguage(ILanguageDeclaration languageDeclaration)
        {
            if (string.IsNullOrEmpty(languageDeclaration.Extension))
              {
            Log.Error(string.Format("No 'Extension' defined for language '{0}' with ID='{1}'.", languageDeclaration.Name, languageDeclaration.Id));
            return false;
              }

              if (!languageDeclaration.Extension.StartsWith("*."))
              {
            Log.Error(string.Format("The 'Extension' must start with '*.' and it didn't for language '{0}' with ID='{1}'.", languageDeclaration.Name, languageDeclaration.Id));
            return false;
              }

              if (languageDeclaration.Extension.Length < 2)
              {
            Log.Error(string.Format("The 'Extension' must be at least 2 characters long and it wasn't for language '{0}' with ID='{1}'.", languageDeclaration.Name, languageDeclaration.Id));
            return false;
              }
              return true;
        }
예제 #10
0
        public static XmlNode CreateLanguageDeclarationXmlNode(XmlDocument doc, ILanguageDeclaration declaration)
        {
            // <LanguageDeclaration Id="{C224974D-E493-42C2-960F-DBE6BB64C946}">
              //   <Name><CDATA ELEMENT></Name>
              //   <Extension>*.cs</Extension>
              // </LanguageDeclaration>
              XmlNode      languageDeclarationNode = doc.CreateNode(XmlNodeType.Element, "LanguageDeclaration", null);
              XmlNode      nameNode                = doc.CreateNode(XmlNodeType.Element, "Name",                null);
              XmlNode      extensionNode           = doc.CreateNode(XmlNodeType.Element, "Extension",           null);
              XmlAttribute idAttrib                = doc.CreateAttribute("Id");

              idAttrib.Value = declaration.Id.ToString();
              languageDeclarationNode.Attributes.Append(idAttrib);

              XmlCDataSection cdataNameNode = doc.CreateCDataSection(declaration.Name);
              nameNode.AppendChild(cdataNameNode);

              extensionNode.InnerText = declaration.Extension;

              languageDeclarationNode.AppendChild(nameNode);
              languageDeclarationNode.AppendChild(extensionNode);
              return languageDeclarationNode;
        }