//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); }