Esempio n. 1
0
        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");
            }
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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));
        }