private static void WriteViolationsToOutpuFile(List <InputDataUnit> violatedOutputRules) { var violatedFilePath = ApplicationSettingsUtility.GetViolatedRulesOutputFilePath(); if (string.IsNullOrEmpty(violatedFilePath)) { var currExeDirPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var currOutputDirPath = Path.Combine(currExeDirPath, "Output"); if (!Directory.Exists(currOutputDirPath)) { Directory.CreateDirectory(currOutputDirPath); } violatedFilePath = Path.Combine(currOutputDirPath, "violated_rules_dataunit.json"); File.Create(violatedFilePath).Dispose(); } try { JSONService.WriteOutputData(violatedFilePath, violatedOutputRules); Console.WriteLine($"There were some rule violations, which are displayed on screen \nAnd also copied to {violatedFilePath} file"); } catch (Exception) { Console.WriteLine($"Couldn't write violated rules to output file : {violatedFilePath}, So Only displayed on screen"); } }
private static Tuple <bool, Rules> GetRulesTuple() { Rules rules = null; var ruleTuple = new Tuple <bool, Rules>(false, rules); var rulesFilePath = ApplicationSettingsUtility.GetRulesFilePath(); if (string.IsNullOrEmpty(rulesFilePath)) { rulesFilePath = @"Input\Rules.xml"; } if (!File.Exists(rulesFilePath)) { Console.WriteLine("Rules.xml is not present"); return(ruleTuple); } try { rules = XMLService.ReadRules(rulesFilePath); if (!ValidatorService.ValidateInputRulesForExclusivity(rules)) { Console.WriteLine("Given input rules are either not proper or Contradicting. Please check."); return(ruleTuple); } } catch (Exception ex) { Console.WriteLine("There's come problem with Rules.xml. \n" + ex.Message); return(ruleTuple); } try { RulesService.CheckContradictingInputValues(rules); } catch (Exception ex) { Console.WriteLine($"Error in given rules : {ex.Message}"); return(ruleTuple); } return(new Tuple <bool, Rules>(true, rules)); }
private static Tuple <bool, string> GetInputFilePathTuple() { var inputFileTuple = new Tuple <bool, string>(false, null); var inputFilePath = ApplicationSettingsUtility.GetRawDataFilePath(); if (string.IsNullOrEmpty(inputFilePath)) { inputFilePath = @"Input\raw_data.json"; } if (!File.Exists(inputFilePath)) { Console.WriteLine("raw_data.json is not present"); return(inputFileTuple); } return(new Tuple <bool, string>(true, inputFilePath)); }