public TestSuite GetTestSuit(TestSuite ts) { TestSuite Testsuite = null; using (var connection = new NpgsqlConnection("Server=10.4.10.31;Port=5432;Database=qa_automation;User Id=bta_dev;Password=Aut0*13Q;")) { connection.Open(); try { NpgsqlTransaction tran = connection.BeginTransaction(); var str = ts.GetId(); NpgsqlCommand command = new NpgsqlCommand("SELECT * FROM automation.GetTestsSuites_CasesSteps_new('" + str + "');", connection); NpgsqlDataAdapter dataadapter = new NpgsqlDataAdapter(command); DataSet dataset = new DataSet(); DataTable dt = new DataTable(); List <TestCase> TestCaseList = null; List <TestStep> TestStepList = null; dataadapter.Fill(dataset); if (dataset != null && dataset.Tables.Count > 0) { Testsuite = new TestSuite(); var _result = from row in dataset.Tables[0].AsEnumerable() group row by new { ID = row.Field <string>("TestCaseid"), } into TestSuiteCaseStep select new { ID = TestSuiteCaseStep.Key.ID, TestSuiteCaseStep = TestSuiteCaseStep.AsEnumerable() }; TestCaseList = new List <TestCase>(); foreach (var datarow in _result) { var data = datarow.TestSuiteCaseStep.FirstOrDefault(); TestCase TestCase = new TestCase(); Testsuite.SetId(data["TestSuit_id"].ToString()); Testsuite.SetSuiteName(data["TestSuit_Name"].ToString()); Testsuite.SetSuiteStartTime(data["TestSuit_StartTime"].ToString()); Testsuite.SetSuiteEndTime(data["TestSuit_EndTime"].ToString()); Testsuite.SetPassed(Convert.ToInt32(data["TestSuit_TotalPassed"])); Testsuite.SetFailed(Convert.ToInt32(data["TestSuit_TotalFail"])); Testsuite.environmentName = data["TestSuit_Environment"].ToString(); Testsuite.buildVersion = data["Build_Number"].ToString(); Testsuite.ClientID = data["ClientID"].ToString(); Testsuite.ApplicationName = data["Test_AppName"].ToString(); TestCase.SetId(data["TestCaseid"].ToString()); TestCase.SetTestCaseName(data["TestcaseName"].ToString()); TestCase.SetStartTime(data["TestCaseStartTime"].ToString()); TestCase.SetEndTime(data["TestcaseEndTime"].ToString()); TestCase.SetErrorMessage(data["TestCaseErrorMessage"].ToString()); TestCase.SetImageContent(data["imageContent"].ToString()); TestCase.SetStatus(Convert.ToBoolean(data["TestCaseStatus"])); TestStepList = new List <TestStep>(); foreach (var item in datarow.TestSuiteCaseStep) { TestStep TestStep = new TestStep(); TestStep.SetTestStep(item[("TestStep_Name")].ToString()); TestStep.SetStepStartTime(item[("TestStep_StartTime")].ToString()); TestStep.SetStepEndTime(item[("TestStep_EndTime")].ToString()); TestStep.SetOutput(item[("TestStep_Output")].ToString()); TestStep.SetErrorMessage(item[("TestStep_errorMessage")].ToString()); TestStep.SetImageContent(item[("TestStep_imageContent")].ToString()); TestStep.SetStatus(Convert.ToBoolean(item["TestStep_Status"])); TestStepList.Add(TestStep); } TestCase.SetTestCaseSteps(TestStepList); TestCaseList.Add(TestCase); TestStepList = null; } Testsuite.SetListOfTestCases(TestCaseList); } tran.Commit(); } catch (Exception ex) { Console.WriteLine("Message: " + ex.Message); // Log_DataType_Conversion_Error(new StringBuilder( ex.Message)); } finally { connection.Close(); } return(Testsuite); } }