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(); }
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;")); } } }
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(); } } }
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"); } } }
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")); } } }
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")); } } }
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(); }
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"); } } }
/// <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; } } } }