public void WriteFile(MatrixFileHelper helper)
        {
            Directory.SetCurrentDirectory(_directory);

            string resultFileName = string.Concat(
                Path.GetFileNameWithoutExtension(helper.FileName),
                "_result",
                Path.GetExtension(helper.FileName)
                );

            _logger.Log(string.Format("Writing file {0} to directory {1}", resultFileName, _directory));

            using (var fileStream = File.Create(resultFileName))
            {
                using (var writer = new StreamWriter(fileStream))
                {
                    writer.WriteLine(helper.Operation.ToString());
                    writer.WriteLine(StringHelper.OperationDelimiter);

                    int currentMatrix = 0;
                    foreach (Matrix matrix in helper.Matrixes)
                    {
                        _logger.Log(string.Format("Writing matrix {0} out of {1}", ++currentMatrix, helper.Matrixes.Count));

                        writer.WriteLine(matrix.ToString());
                        writer.WriteLine(StringHelper.MatrixDelimiter);
                    }
                }
            }
        }
        public IEnumerable <MatrixFileHelper> ReadFiles()
        {
            IList <string> fileNames  = Directory.GetFiles(_directory);
            int            filesCount = fileNames.Count;

            _logger.Log(string.Format("Reading {0} files", filesCount));

            int currentFile = 0;

            foreach (string name in fileNames)
            {
                _logger.Log(string.Format("Reading file {0} out of {1}: {2}", ++currentFile, filesCount, name));

                if (!Path.GetExtension(name).Equals(".txt"))
                {
                    _logger.Error(string.Format("File {0} doesn't have the .txt extension", name));
                }
                else
                {
                    var fileHelper = MatrixFileHelper.TryInit(name, File.ReadAllText(name));
                    if (fileHelper != null)
                    {
                        yield return(fileHelper);
                    }
                }
            }
        }