// The sheets of the workbook are: \\ // \\ // Sheet number 1, name: Train (main) \\ // Sheet number 2, name: Track \\ // Sheet number 3, name: National values \\ // Sheet number 4, name: Fixed values \\ // Sheet number 5, name: Brake parameters (lambda) \\ L // Sheet number 6, name: Brake parameters (gamma) \\ G // Sheet number 7, name: Correction factor Kdry_rst \\ G // Sheet number 8, name: Integrated correction factors \\ L // Sheet number 9, name: Lambda train deceleration \\ L // Sheet number 10, name: Gamma train deceleration \\ G // Sheet number 11, name: Curves Gamma train \\ G // Sheet number 12, name: Calc Gamma \\ G (hidden) // Sheet number 13, name: Curves Lambda train \\ L // Sheet number 14, name: Calc Lambda \\ L (hidden) /// <summary> /// Launches import of the excel file in the background task /// </summary> /// <param name="arg"></param> public override void ExecuteWork() { if (TheDictionary != null) { Microsoft.Office.Interop.Excel.Application application = new Microsoft.Office.Interop.Excel.Application(); if (application != null) { Workbook workbook = application.Workbooks.Open(FileName); Worksheet trainData = workbook.Sheets[1] as Worksheet; Range aRange = trainData.UsedRange; string trainTypeName = (string)(aRange.Cells[14, 4] as Range).Value2; bool trainIsGamma = false; if (trainTypeName.Equals("Gamma")) { trainIsGamma = true; } else if (!trainTypeName.Equals("Lambda")) { new Exception("Unknown train type"); } Frame newFrame = new Frame(); newFrame.Name = FrameName; newFrame.setCycleDuration("Kernel.CycleDuration"); TheDictionary.AddModelElement(newFrame); SubSequence newSubSequence = new SubSequence(); newSubSequence.Name = FrameName; newFrame.AddModelElement(newSubSequence); TestCase aTestCase = new TestCase(); aTestCase.Name = "Setup"; aTestCase.NeedsRequirement = false; newSubSequence.AddModelElement(aTestCase); intializeEFS(aTestCase, workbook); aTestCase = new TestCase(); aTestCase.Name = "Initialize input"; aTestCase.NeedsRequirement = false; newSubSequence.AddModelElement(aTestCase); if (trainIsGamma) { initializeInputForGamma(aTestCase, workbook); } else { initializeInputForLambda(aTestCase, workbook); } aTestCase = new TestCase(); aTestCase.Name = "Verify input"; aTestCase.NeedsRequirement = false; newSubSequence.AddModelElement(aTestCase); if (trainIsGamma) { verifyInputForGamma(aTestCase, workbook); } else { verifyInputForLambda(aTestCase, workbook); } aTestCase = new TestCase(); aTestCase.Name = "Verify output"; aTestCase.NeedsRequirement = false; newSubSequence.AddModelElement(aTestCase); verifyOutputForTrains(trainIsGamma, aTestCase, workbook); } else { Log.ErrorFormat("Error while opening the excel file"); } application.Quit(); } else { if (TheStep != null) { //importExpectations(workbook); } else { Log.ErrorFormat("The import config is not properly initialized"); } } }