示例#1
0
        static void Main(string[] args)
        {
            string input    = "Random str.";
            string language = "VB";

            ProgramConverter[] array = { new ProgramConverter(), new ProgramConverter(), new ProgramHelper(), new ProgramHelper() };
            foreach (var item in array)
            {
                if (item is ICodeChecker)
                {
                    ICodeChecker check = item as ICodeChecker;
                    if (check.CheckCodeSyntax(input, language))
                    {
                        Console.WriteLine(item.ConvertToVB(input));
                    }
                    else
                    {
                        Console.WriteLine(item.ConvertToCSharp(input));
                    }
                }
                else
                {
                    Console.WriteLine(item.ConvertToCSharp(input));
                    Console.WriteLine(item.ConvertToVB(input));
                }
            }
            Console.ReadLine();
        }
        static void Main(string[] args)
        {
            ProgramConverter[] pc = new ProgramConverter[3];
            pc[0] = new ProgramHelper();
            pc[1] = new ProgramConverter();
            pc[2] = new ProgramConverter();


            for (int i = 0; i < pc.Length - 1; i++)
            {
                if (pc[i] is ICodeChecker)
                {
                    ICodeChecker qq = pc[i] as ProgramHelper;
                    Console.WriteLine(qq.CheckCodeSyntax("+", "+"));
                }
                else
                {
                    Console.WriteLine(pc[i].ConvertToCSharp("+"));
                    Console.WriteLine(pc[i].ConvertToVB("+"));
                }
            }


            Console.ReadKey();
        }
示例#3
0
        static void Main(string[] args)
        {
            ProgramConverter[] a = { new ProgramConverter(), new ProgramConverter(), new ProgrammHelper(), new ProgrammHelper() };


            for (int i = 0; i < a.Length; i++)
            {
                if (a[i] is ICodeChecker)
                {
                    ICodeChecker temp = a[i] as ICodeChecker;
                    Console.WriteLine("\nInterface ICodeChecker implemented");
                    if (temp.ChekCodeSyntax("Dim x As Integer", "VB"))
                    {
                        Console.WriteLine("Translate VB code \"Dim x As Integer\" to c#: ");
                        Console.WriteLine(a[i].ConvertToCSharp("Dim x As Integer"));
                    }
                }

                else
                {
                    Console.WriteLine("\nInterface ICodeChecker not implemented");
                    Console.WriteLine("ConvertToCSharp: " + "Dim x As Integer");
                    Console.WriteLine(a[i].ConvertToCSharp("Dim x As Integer"));

                    Console.WriteLine("ConvertToVB: double y = 4.0; ");
                    Console.WriteLine(a[i].ConvertToVB("double y = 4.0;"));
                }
            }
        }
示例#4
0
        static void Main(string[] args)
        {
            ProgramConverter[] array =
            {
                new ProgramConverter(),
                new ProgramHelper(),
                new ProgramConverter()
            };

            foreach (ProgramConverter pc in array)
            {
                ICodeChecker icc = pc as ICodeChecker;

                if (icc != null)
                {
                    if (icc.CheckCodeSyntax("Строка", "CSharp"))
                    {
                        Console.WriteLine(pc.ConvertToVB("code"));
                        Console.WriteLine();
                    }

                    else
                    {
                        Console.WriteLine(pc.ConvertToCSharp("code"));
                        Console.WriteLine();
                    }
                }
                else
                {
                    Console.WriteLine(pc.ConvertToCSharp("code"));
                    Console.WriteLine(pc.ConvertToVB("code"));
                    Console.WriteLine();
                }
            }
        }
示例#5
0
        public void Run()
        {
            ProgramConverter[] myConverters = new ProgramConverter[4];
            string             source       = "I am some kind of source being";

            for (int i = 0; i < 4; i++)
            {
                if (i % 2 == 0)
                {
                    myConverters[i] = new ProgramConverter();
                }
                else
                {
                    myConverters[i] = new ProgramHelper();
                }
            }

            foreach (ProgramConverter convert in myConverters)
            {
                ICodeChecker myCodeChecker = convert as ICodeChecker;
                if (myCodeChecker != null)
                {
                    Console.WriteLine("I Implement ICodeChecker.");
                }
                else
                {
                    Console.WriteLine("Not me");
                }
            }
        }
示例#6
0
 static void Main(string[] args)
 {
     ProgramConverter[] check = new ProgramConverter[2];
     check[0] = new ProgramConverter();
     check[1] = new ProgramHelper();
     for (int i = 0; i < check.Length; i++)
     {
         if (check[i] is ICodeChecker)
         {
             ICodeChecker codeCheck = check[i] as ProgramHelper;
             if (codeCheck.CheckCodeSyntax("lol", "haha"))
             {
                 Console.WriteLine(check[i].ConvertToCSharp("lol"));
             }
             else
             {
                 Console.WriteLine(check[i].ConvertToVB("lol"));
             }
         }
         else
         {
             IConvertible convert = check[i] as ProgramConverter;
             Console.WriteLine(convert.ConvertToCSharp("lol"));
             Console.WriteLine(convert.ConvertToVB("lol"));
         }
     }
 }
示例#7
0
 static void Main(string[] args)
 {
     ProgramConverter[] check = new ProgramConverter[2]; // создали массив элементов ProgramConverter
     check[0] = new ProgramConverter();                  // тип ProgramConverter
     check[1] = new ProgramHelper();                     // тип ProgramHelper
     for (int i = 0; i < check.Length; i++)              // проверка реализации метода ICodeChecker
     {
         if (check[i] is ICodeChecker)                   // если метод реализуется, вызываем метод проверки кода и соответствующий метод преобразования
         {
             ICodeChecker codeCheck = check[i] as ProgramHelper;
             if (codeCheck.CheckCodeSyntax("coding", "programmer"))
             {
                 Console.WriteLine(check[i].ConvertToCSharp("coding"));
             }
             else
             {
                 Console.WriteLine(check[i].ConvertToVB("coding"));
             }
         }
         else // если метод не реализуется, вызываем два метода преоброзвания кода
         {
             IConvertible convert = check[i] as ProgramConverter;
             Console.WriteLine(convert.ConvertToCSharp("coding"));
             Console.WriteLine(convert.ConvertToVB("coding"));
         }
     }
 }
示例#8
0
 static void Main(string[] args)
 {
     ProgramConverter[] check = new ProgramConverter[2];
     check[0] = new ProgramConverter();
     check[1] = new ProgramHelper();
     for (int i = 0; i < check.Length; i++)
     {
         if (check[i] is ICodeChecker)
         {
             ICodeChecker Check = check[i] as ProgramHelper;
             if (Check.CheckCodeSyntax("str1", "str2"))
             {
                 Console.WriteLine(check[i].ConvertToCSharp("str1"));
             }
             else
             {
                 Console.WriteLine(check[i].ConvertToVB("str1"));
             }
         }
         else
         {
             ICodeChecker Check = check[i] as ProgramHelper;
             Console.WriteLine(check[i].ConvertToCSharp("str1"));
             Console.WriteLine(check[i].ConvertToVB("str1"));
         }
     }
     Console.ReadLine();
 }
示例#9
0
        static void Main(string[] args)
        {
            string someCode = "code ;";

            Console.WriteLine($"Code to perform tests with : {someCode}");
            int size = 2;

            ProgramConverter[] array = new ProgramConverter[size];
            array[0] = new ProgramHelper();
            array[1] = new ProgramConverter();
            for (int i = 0; i < size; i++)
            {
                Console.WriteLine($"\nCurrent index of array is [{i}] : ");
                if (array[i] is ICodeChecker)
                {
                    Console.WriteLine("This object realize ICodeChecker");

                    _IConvertible.IConvertible convertible = array[i];
                    Console.WriteLine(convertible.ConvertToCSharp(someCode) + "\n\t : Converted to CSharp");
                    Console.WriteLine(convertible.ConvertToVB(someCode) + "\n\t : Converted to VB");

                    ICodeChecker codeChecker = (ICodeChecker)array[i];
                    string       result      = codeChecker.CheckCodeSyntax(someCode, "CSharp") switch {
                        true => "Correct code",
                        _ => "Invalid code",
                    };
                    Console.WriteLine(result + " for CSharp");
                    result = codeChecker.CheckCodeSyntax(someCode, "VB") switch {
                        true => "Correct code",
                        _ => "Invalid code",
                    };
                    Console.WriteLine(result + " for VB");
                }
                else
                {
                    Console.WriteLine("This object realize IConvertible");

                    _IConvertible.IConvertible convertible = array[i];
                    Console.WriteLine(convertible.ConvertToCSharp(someCode) + "\n\t : Converted to CSharp");
                    Console.WriteLine(convertible.ConvertToVB(someCode) + "\n\t : Converted to VB");
                }
            }
        }
示例#10
0
        /// <summary>
        /// Сконфигурировать чекер.
        /// </summary>
        /// <param name="checker">Чекер.</param>
        public static void Configure(this ICodeChecker checker)
        {
            var section = (AgentConfigurationSection)ConfigurationManager.GetSection("agent");

            log.Trace("Загрузка контекста приложения");
            var applicationContextFactory = new ApplicationContextFactory();

            checker.ContextManager.Load(applicationContextFactory);

            log.Trace("Загрузка контекста разработки");
            var developmentContextFactory = new DevelopmentContextFactory();

            foreach (ContextProviderElement element in section.ContextProviders)
            {
                switch (element.Provider)
                {
                case ContextProviderType.Package:
                    log.Trace($"Найден загрузчик контекста из пакета {element.FilePath}");
                    var packageProvider = new PackageProvider(element.FilePath);
                    developmentContextFactory.Providers.Add(packageProvider);
                    break;

                case ContextProviderType.Database:
                    log.Trace($"Найден загрузчик контекста из базы данных {element.ConnectionString}");
                    var databaseProvider = new DatabaseProvider(element.ConnectionString);
                    developmentContextFactory.Providers.Add(databaseProvider);
                    break;

                case ContextProviderType.Folder:
                    log.Trace($"Найден загрузчик контекста из папки {element.FolderPath}");
                    var folderProvider = new FolderProvider(element.FolderPath);
                    developmentContextFactory.Providers.Add(folderProvider);
                    break;
                }
            }
            checker.ContextManager.Load(developmentContextFactory);

            log.Trace("Загрузка сборок с правилами анализа");
            if (!string.IsNullOrEmpty(section.RuleLibraryPath))
            {
                checker.RuleManager.LoadLibraries(section.RuleLibraryPath);
            }

            log.Trace("Загрузка генераторов отчетов");
            if (section.ReportPrinters != null)
            {
                foreach (ReportPrinterElement element in section.ReportPrinters)
                {
                    switch (element.Printer)
                    {
                    case ReportPrinterType.Console:
                        var consoleReportPrinter = new ConsoleReportPrinter();
                        checker.ReportManager.Printers.Add(consoleReportPrinter);
                        break;

                    case ReportPrinterType.CSV:
                        var csvReportPrinter = new CsvReportPrinter(element.FilePath);
                        checker.ReportManager.Printers.Add(csvReportPrinter);
                        break;
                    }
                }
            }
        }