//Methods--------------------------------------------------------------------------------------------------------------//
        //GroutToGw - converts file from GroutIt format to GW
        public IList<string> ConvertGroutItToGw(string inputFileName, string[] inputFileRows)
        {
            if (inputFileRows.Length < 4)
                { throw new ArgumentException("File does not seem to contain any data"); }

            //converting file data to 2-dimensional array[i,j] of strings
            var dataArrayWidth = 25;
            string[,] inputFileData = new string[inputFileRows.Length, dataArrayWidth];
            for (int i = 0; i < inputFileRows.Length; i++)
            {
                string[] inputFileColumns = inputFileRows[i].Split(new Char[] { ';' });
                for (int j = 0; j < inputFileColumns.Length; j++)
                {
                    inputFileData[i, j] = inputFileColumns[j];
                }
            }

            checkInpuFileData(inputFileData);

            // Initializing MyFile and setting constant (common) parameters
            myFileObject = new Ty_IF();
            myFileObject.Recs = new List<Ty_Rec>();
            myFileObject.Phase = inputFileName.Remove(inputFileName.Length - 4).Split(new Char[] { '_' }).Last();
            myFileObject.Fora = inputFileData[1, 2];
            myFileObject.Tran = inputFileData[1, 5];
            myFileObject.HTranche = inputFileData[1, 18];
            myFileObject.FDate = DateTime.ParseExact(inputFileData[1, 12] + " " + inputFileData[1, 13],
                    appSettings.InputFileDateTimeFormat, CultureInfo.InvariantCulture);

            //Reading records from inputFileData and adding to MyFile.Recs list
            var incTime = 0;
            for (int i = 3; i < inputFileRows.Length; i++)
            {
                if (String.IsNullOrEmpty(inputFileData[i,0])) { continue; }
                var rowSeconds = Convert.ToInt32(double.Parse(inputFileData[i, 0]));

                if (i != 3 &&
                    rowSeconds - incTime < 0 &&
                    i != inputFileRows.Length - 1
                    ) { continue; }

                myFileObject.Recs.Add(new Ty_Rec()
                {
                    RDate = myFileObject.FDate.AddSeconds(rowSeconds),
                    BEB = inputFileData[i, 3],
                    PR = inputFileData[i, 5],
                    VOL = inputFileData[i, 7]
                });

                while (incTime <= rowSeconds)
                {
                incTime += appSettings.OutputFileIntervalSeconds;
                }
            }

            //Creating and writing output file
            var outputFileData = new List<string>();
            foreach (var rec in myFileObject.Recs)
            {
                outputFileData.Add(encodeOutputFileRow(myFileObject.Fora + "_Stage", rec.RDate, myFileObject.Tran, "0"));
                outputFileData.Add(encodeOutputFileRow(myFileObject.Fora + "_Phase", rec.RDate, myFileObject.Phase, "0"));
                outputFileData.Add(encodeOutputFileRow(myFileObject.Fora + "_Vol", rec.RDate, rec.VOL, "0.00"));
                outputFileData.Add(encodeOutputFileRow(myFileObject.Fora + "_Press", rec.RDate, rec.PR, "0.00"));
                outputFileData.Add(encodeOutputFileRow(myFileObject.Fora + "_FlRate", rec.RDate, rec.BEB, "0.00"));
                outputFileData.Add(encodeOutputFileRow(myFileObject.Fora + "_Height", rec.RDate, myFileObject.HTranche, "0"));
            }
            return outputFileData;
        }
        //Methods--------------------------------------------------------------------------------------------------------------//

        //GroutToGw - converts file from GroutIt format to GW
        public IList <string> ConvertGroutItToGw(string inputFileName, string[] inputFileRows)
        {
            if (inputFileRows.Length < 4)
            {
                throw new ArgumentException("File does not seem to contain any data");
            }

            //converting file data to 2-dimensional array[i,j] of strings
            var dataArrayWidth = 25;

            string[,] inputFileData = new string[inputFileRows.Length, dataArrayWidth];
            for (int i = 0; i < inputFileRows.Length; i++)
            {
                string[] inputFileColumns = inputFileRows[i].Split(new Char[] { ';' });
                for (int j = 0; j < inputFileColumns.Length; j++)
                {
                    inputFileData[i, j] = inputFileColumns[j];
                }
            }

            //checking input data
            checkInpuFileDataHelper(inputFileData);

            //checking if file not too old
            checkIfFileTooOldHelper(inputFileData);

            // Initializing MyFile and setting constant (common) parameters
            myFileObject          = new Ty_IF();
            myFileObject.Recs     = new List <Ty_Rec>();
            myFileObject.Phase    = inputFileName.Remove(inputFileName.Length - 4).Split(new Char[] { '_' }).Last();
            myFileObject.Fora     = inputFileData[1, 2];
            myFileObject.Tran     = inputFileData[1, 5];
            myFileObject.HTranche = inputFileData[1, 18];
            myFileObject.FDate    = DateTime.ParseExact(inputFileData[1, 12] + " " + inputFileData[1, 13],
                                                        appSettings.InputFileDateTimeFormat, CultureInfo.InvariantCulture);

            //Reading records from inputFileData and adding to MyFile.Recs list
            var incTime = 0;

            for (int i = 3; i < inputFileRows.Length; i++)
            {
                if (String.IsNullOrEmpty(inputFileData[i, 0]))
                {
                    continue;
                }
                var rowSeconds = Convert.ToInt32(double.Parse(inputFileData[i, 0]));

                if (i != 3 &&
                    rowSeconds - incTime < 0 &&
                    i != inputFileRows.Length - 1
                    )
                {
                    continue;
                }

                myFileObject.Recs.Add(new Ty_Rec()
                {
                    RDate = myFileObject.FDate.AddSeconds(rowSeconds),
                    BEB   = inputFileData[i, 3],
                    PR    = inputFileData[i, 5],
                    VOL   = inputFileData[i, 7]
                });

                while (incTime <= rowSeconds)
                {
                    incTime += appSettings.OutputFileIntervalSeconds;
                }
            }

            //Creating and writing output file
            var outputFileData = new List <string>();

            foreach (var rec in myFileObject.Recs)
            {
                outputFileData.Add(encodeOutputFileRowHelper(myFileObject.Fora + "_Stage", rec.RDate, myFileObject.Tran, "0"));
                outputFileData.Add(encodeOutputFileRowHelper(myFileObject.Fora + "_Phase", rec.RDate, myFileObject.Phase, "0"));
                outputFileData.Add(encodeOutputFileRowHelper(myFileObject.Fora + "_Vol", rec.RDate, rec.VOL, "0.00"));
                outputFileData.Add(encodeOutputFileRowHelper(myFileObject.Fora + "_Press", rec.RDate, rec.PR, "0.00"));
                outputFileData.Add(encodeOutputFileRowHelper(myFileObject.Fora + "_FlRate", rec.RDate, rec.BEB, "0.00"));
                outputFileData.Add(encodeOutputFileRowHelper(myFileObject.Fora + "_Height", rec.RDate, myFileObject.HTranche, "0"));
            }
            return(outputFileData);
        }