105 lines
4.5 KiB
C#
105 lines
4.5 KiB
C#
using System;
|
|
using System.IO;
|
|
using JetBrains.Annotations;
|
|
|
|
namespace Sda.DictionaryItemEnumGenerator
|
|
{
|
|
public static class Generator
|
|
{
|
|
public static void Generate(
|
|
[NotNull] string inputFileName,
|
|
[NotNull] string InputDictionaryXMLFile,
|
|
[NotNull] string ScriptOutputDir,
|
|
[NotNull] string csharpOutput)
|
|
{
|
|
if (string.IsNullOrEmpty(ScriptOutputDir))
|
|
throw new ArgumentNullException("ScriptOutputDir");
|
|
if (string.IsNullOrEmpty(inputFileName))
|
|
throw new ArgumentNullException("inputFileName");
|
|
if (string.IsNullOrEmpty(csharpOutput))
|
|
throw new ArgumentNullException("csharpOutput");
|
|
if (string.IsNullOrEmpty(InputDictionaryXMLFile))
|
|
throw new ArgumentNullException("InputDictionaryXMLFile");
|
|
try
|
|
{
|
|
// 1. UML-ből generált DictionaryItems.txt fájl feldolgozása
|
|
InputDataCollection idc = new InputDataCollection();
|
|
idc.Load(inputFileName);
|
|
|
|
// 2. GeneratedDictionaryItems.kres XML fájl betöltése + stringresources betöltése és feldolgozása
|
|
GeneratedDictionaryInputDataCollection dictInputDatas = new GeneratedDictionaryInputDataCollection();
|
|
dictInputDatas.Load(InputDictionaryXMLFile);
|
|
|
|
// 3. az XML és TXT fájlok összefésülése
|
|
DictionaryItemGroupUtils dictionaryitemGroupUtils = new DictionaryItemGroupUtils();
|
|
dictionaryitemGroupUtils.Load(idc, dictInputDatas.DictionaryItemGroups);
|
|
|
|
// 4. Kréta DB Scriptek generálása
|
|
dictionaryitemGroupUtils.GenerateDBScripts(ScriptOutputDir);
|
|
|
|
// 5. GeneratedEnums.cs fájl generálása
|
|
dictionaryitemGroupUtils.SaveCSharp(csharpOutput);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new ArgumentException(ex.Message);
|
|
}
|
|
|
|
}
|
|
|
|
internal static void GenerateConsole(
|
|
[NotNull] string inputFileName,
|
|
[NotNull] string InputDictionaryXMLFile,
|
|
[NotNull] string ScriptOutputDir,
|
|
[NotNull] string csharpOutput)
|
|
{
|
|
if (string.IsNullOrEmpty(inputFileName))
|
|
inputFileName = @"g:\Kreta\Main\DBScripts\DictionaryItems.txt";
|
|
if (string.IsNullOrEmpty(InputDictionaryXMLFile))
|
|
InputDictionaryXMLFile = @"g:\Kreta\Main\GeneratedDictionaryItems.kres";
|
|
if (string.IsNullOrEmpty(ScriptOutputDir))
|
|
ScriptOutputDir = @"g:\Kreta\Main\DBScripts\Mssql\";
|
|
if (string.IsNullOrEmpty(csharpOutput))
|
|
csharpOutput = @"g:\Kreta\Main\Kreta.Enums\";
|
|
|
|
FileInfo fi = new FileInfo(inputFileName);
|
|
Console.WriteLine("InputFileName: " + fi.FullName);
|
|
Console.WriteLine("Exists: " + fi.Exists);
|
|
Console.WriteLine();
|
|
//FileInfo fi2 = new FileInfo( outputFilename );
|
|
//Console.WriteLine( "OutputDirectory: " + fi2.FullName );
|
|
//Console.WriteLine( "Exists: " + fi2.Exists );
|
|
if (!fi.Exists)
|
|
{
|
|
Console.WriteLine("Input File does Not Exists");
|
|
Console.WriteLine("Exit Code is 1");
|
|
Environment.ExitCode = 1;
|
|
Environment.Exit(Environment.ExitCode);
|
|
}
|
|
try
|
|
{
|
|
// 1. UML-ből generált DictionaryItems.txt fájl feldolgozása
|
|
InputDataCollection idc = new InputDataCollection();
|
|
idc.Load(inputFileName);
|
|
|
|
// 2. GeneratedDictionaryItems.kres XML fájl betöltése + stringresources betöltése és feldolgozása
|
|
GeneratedDictionaryInputDataCollection dictInputDatas = new GeneratedDictionaryInputDataCollection();
|
|
dictInputDatas.Load(InputDictionaryXMLFile);
|
|
|
|
// 3. az XML és TXT fájlok összefésülése
|
|
DictionaryItemGroupUtils dictionaryitemGroupUtils = new DictionaryItemGroupUtils();
|
|
dictionaryitemGroupUtils.Load(idc, dictInputDatas.DictionaryItemGroups);
|
|
|
|
dictionaryitemGroupUtils.GenerateDBScripts(ScriptOutputDir);
|
|
|
|
dictionaryitemGroupUtils.SaveCSharp(csharpOutput);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new ArgumentException(ex.Message);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|