| 10 |  | { | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 11 |  | class Program | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 12 |  | { | 
 
 
 
 
 
 
 
 
 
 
 | 13 | < | public static readonly string toolsVersion = "0.8c"; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 14 | < | private static appErrors lastError; | 
 
 
 
 
 
 
 
 
 | 13 | > | public static readonly string toolsVersion = "0.8d"; | 
 
 
 
 
 | 14 | > | private static appErrors lastError = appErrors.NO_ERROR; | 
 
 
 
 
 
 
 
 
 
 
 | 15 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 16 |  | public enum appErrors | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 17 |  | { | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 18 |  | // 1-19 Errors with input parameters | 
 
 
 
 
 
 
 
 | 19 | + | NO_ERROR = 0, | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 20 |  | ERROR_PARAMS = 1, | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 21 |  | FILE_NOT_FOUND = 2, | 
 
 
 
 
 
 
 
 
 
 
 | 22 | < | ELEMENT_NOT_SPECIFIED=3, | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 23 | < | ELEMENT_NOT_FOUND=4, | 
 
 
 
 
 
 
 
 
 | 22 | > | ELEMENT_NOT_SPECIFIED = 3, | 
 
 
 
 
 | 23 | > | ELEMENT_NOT_FOUND = 4, | 
 
 
 
 
 
 
 
 
 
 
 | 24 |  | // 20-199 General application errors | 
 
 
 
 
 
 
 
 
 
 
 | 25 | < | BACKUPS_ALREADY_EXISTS=20, | 
 
 
 
 
 
 
 
 
 | 25 | > | BACKUPS_ALREADY_EXISTS = 20, | 
 
 
 
 
 
 
 
 
 
 
 | 26 |  | NUMBER_VALUES_TO_REPLACE_NE_AVAILABLE_VALUES = 21, | 
 
 
 
 
 
 
 
 
 
 
 | 27 | < | INVALID_POSITIONS_RANGE=22, | 
 
 
 
 
 
 
 
 
 | 27 | > | INVALID_POSITIONS_RANGE = 22, | 
 
 
 
 
 
 
 
 
 
 
 | 28 |  | // 200-299 Patch operations errors | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 29 |  | PATCH_ADDTO_PROCESS_ERROR = 200, | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 30 |  | PATCH_REMOVE_PROCESS_ERROR = 201, | 
 
 
 
 
 
 
 
 
 
 
 | 31 | < | PATCH_COMMAND_PROCESS_ERROR=202, | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 32 | < | PATCH_ELEMENT_NOT_FOUND=203, | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 33 | < | PATCH_ADDTO_ERROR_PARSING_XML=204, | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 34 | < | PATCH_COMMAND_NOT_FOUND=205 | 
 
 
 
 
 
 
 
 
 | 31 | > | PATCH_COMMAND_PROCESS_ERROR = 202, | 
 
 
 
 
 | 32 | > | PATCH_ELEMENT_NOT_FOUND = 203, | 
 
 
 
 
 | 33 | > | PATCH_ADDTO_ERROR_PARSING_XML = 204, | 
 
 
 
 
 | 34 | > | PATCH_COMMAND_NOT_FOUND = 205 | 
 
 
 
 
 
 
 
 
 
 
 | 35 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 36 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 37 | < | public static void printAppError(appErrors error, string description, bool exitApp=false){ | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 38 | < | Console.Error.WriteLine("Error Code: "+(int)error); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 37 | > | public static void printAppError(appErrors error, string description, bool exitApp = false) | 
 
 
 
 
 | 38 | > | { | 
 
 
 
 
 | 39 | > | Console.Error.WriteLine("Error Code: " + (int)error); | 
 
 
 
 
 
 
 
 
 
 
 | 40 |  | Console.Error.WriteLine(description); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 41 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 42 |  | if (exitApp) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 52 |  | try | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 53 |  | { | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 54 |  | //We use a command parse library due to its advantages | 
 
 
 
 
 
 
 
 
 
 
 | 55 | < | CLAP.Parser.RunConsole<ParametersParser>(args); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 55 | > | appErrors result = (appErrors)CLAP.Parser.RunConsole<ParametersParser>(args); | 
 
 
 
 
 | 56 | > | if (result != appErrors.NO_ERROR) | 
 
 
 
 
 | 57 | > | { | 
 
 
 
 
 | 58 | > | lastError = result; | 
 
 
 
 
 | 59 | > | } | 
 
 
 
 
 
 
 
 
 
 
 | 60 |  | return (int)lastError; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 61 |  | } | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 62 |  | catch (Exception e) |