Example #1
0
        public Results.FileValue Execute(string fileName, Configuration.FileConfiguration config)
        {
            if (!System.IO.File.Exists(fileName))
            {
                throw new ReadFileException(fileName, "There is no file: " + fileName);
            }

            StreamReader reader = new StreamReader(fileName);

            string content = reader.ReadToEnd();

            reader.Close();

            string[] lines = content.Split(new char[] { '\n' });

            Results.FileValue res = new Results.FileValue();

            res.FileName = fileName;

            res.Headers = ReadHeaders(lines, config);
            res.Footers = ReadFooter(lines, config);
            res.Records = ReadRecords(lines, config);

            return(res);
        }
Example #2
0
        private IList <LineValue> ReadFooter(string[] lines, Configuration.FileConfiguration config)
        {
            IList <LineValue> list = new List <LineValue>();

            #region Reading Configuration

            IList <Configuration.LineConfiguration> linesConfig = new List <Configuration.LineConfiguration>();

            for (int c = 0; c < config.Lines.Count; c++)
            {
                if (config.Lines[c].IsFooter)
                {
                    linesConfig.Add(config.Lines[c]);
                }
            }

            #endregion

            for (int i = 0; i < linesConfig.Count; i++)
            {
                string headerLine = lines[lines.Length - 1 - linesConfig[i].LineOffset];

                list.Add(ReadLine(lines.Length - linesConfig[i].LineOffset, linesConfig[i].Name, headerLine, linesConfig[i].Parameters));
            }


            return(list);
        }
Example #3
0
        private IList <LineValue> ReadRecords(string[] lines, Configuration.FileConfiguration config)
        {
            IList <LineValue> list = new List <LineValue>();

            int offSetHeader = 0;
            int offSetFooter = 0;

            #region Reading Configuration

            for (int c = 0; c < config.Lines.Count; c++)
            {
                if (config.Lines[c].IsFooter)
                {
                    int offset = config.Lines[c].LineOffset + 1;
                    if (offSetFooter < offset)
                    {
                        offSetFooter = offset;
                    }
                }
            }

            for (int c = 0; c < config.Lines.Count; c++)
            {
                if (config.Lines[c].IsHeader)
                {
                    int offset = config.Lines[c].LineOffset + 1;
                    if (offSetHeader < offset)
                    {
                        offSetHeader = offset;
                    }
                }
            }


            IList <Configuration.LineConfiguration> linesConfig = new List <Configuration.LineConfiguration>();

            for (int c = 0; c < config.Lines.Count; c++)
            {
                if (!config.Lines[c].IsFooter && !config.Lines[c].IsHeader)
                {
                    linesConfig.Add(config.Lines[c]);
                }
            }

            #endregion

            for (int c = offSetHeader; c < lines.Length - offSetFooter - 1; c++)
            {
                int indexConfig = GetIndexConfigCondition(lines[c], linesConfig);

                if (indexConfig == -1)
                {
                    continue;
                }

                list.Add(ReadLine(c + 1, linesConfig[indexConfig].Name, lines[c], linesConfig[indexConfig].Parameters));
            }


            return(list);
        }