private DataTable GetDataTableForProducts(List<Product> products) { DataTable table = new DataTable(); using (var reader = ObjectReader.Create(products)) { table.Load(reader); } table.SetColumnsOrder( "Id", "Name", "Description", "Price", "Location", "Category", "Manufacturer", "Condition" ); return table; }
public static void DataTableToCSV() { GetFinancialYear(); GetActualMonths(); GetForecastMonths(); SqlCommand cmd = new SqlCommand("SELECT DISTINCT TM.Resource_ID, TM.Project_ID, TM.Client_Name, TM.Sector_Name, TM.Project_Name, TM.Role_Name, TM.Resource_Name, TM.Type_Name, TM.Source_Name, TM.Resource_Buy, TM.Resource_Sell" + strActualMonths + strForecastMonths + " FROM (SELECT TL.Resource_ID, PI.Project_ID, CL.Client_Name, RC.Resource_Name, PR.Resource_Buy, PR.Resource_Sell, ER.Role_Name, ES.Source_Name, PI.Project_Name, PS.Sector_Name, PT.Type_Name" + strActualMonths + " FROM ProjectInformation as PI, RateCard as RC, TotalLookup as TL, ProjectResources as PR, ProjectSector as PS, ProjectType as PT, EmployeeRole as ER, EmployeeSource as ES, MonthlyTotals as TM, Clients as CL WHERE PI.Project_ID = TL.Project_ID AND PI.Project_Client = CL.Client_ID AND TL.Resource_ID = RC.Resource_ID AND PR.Project_ID = TL.Project_ID AND PR.Resource_ID = RC.Resource_ID AND PI.Project_Sector = PS.Sector_ID AND PI.Project_Type = PT.Type_ID AND TL.IsActual = 'true' AND TM.Total_ID = TL.Total_ID AND RC.Resource_Type = 'Employee' AND ER.Role_ID = PR.Employee_Role AND ES.Source_ID = PR.Employee_Source) as TM LEFT OUTER JOIN (SELECT PI.Project_ID, RC.Resource_Name" + strForecastMonths + " FROM ProjectInformation as PI, RateCard as RC, TotalLookup as TL, ProjectResources as PR, ProjectSector as PS, ProjectType as PT, MonthlyTotals as SM WHERE PI.Project_ID = TL.Project_ID AND TL.Resource_ID = RC.Resource_ID AND PR.Project_ID = PI.Project_ID AND PR.Project_ID = TL.Project_ID AND PR.Resource_ID = RC.Resource_ID AND PI.Project_Sector = PS.Sector_ID AND PI.Project_Type = PT.Type_ID AND TL.IsActual = 'false' AND SM.Total_ID = TL.Total_ID AND RC.Resource_Type = 'Employee') as SM on TM.Resource_Name = SM.Resource_Name AND TM.Project_ID = SM.Project_ID ORDER BY TM.Client_Name, TM.Project_Name, TM.Resource_Name", SQLcon); SQLcon.Open(); dt = new DataTable(); SqlDataAdapter sqlAd = new SqlDataAdapter(cmd); sqlAd.Fill(dt); SQLcon.Close(); ActualIfPresent(); //Convert nulls to zero's foreach (DataRow row in dt.Rows) { foreach (DataColumn col in dt.Columns) { if (row.IsNull(col)) row.SetField(col, 0); } } //Remove unnecessary columns dt.Columns.Remove("Resource_ID"); dt.Columns.Remove("Project_ID"); dt.Columns.Add("Margin", typeof(double), "((Resource_Sell-Resource_Buy)/Resource_Sell)*100"); dt.Columns.Add("Margin2"); dt.Columns.Add("Resource_Sell_Euro", typeof(double), "Resource_Sell*1.26"); dt.Columns.Add("Blank_Column"); dt.Columns.Add("Total_Days"); dt.Columns.Add("Total_Days2"); dt.SetColumnsOrder("Client_Name", "Sector_Name", "Project_Name", "Type_Name", "Role_Name", "Resource_Name", "Source_Name", "Resource_Sell_Euro", "Resource_Sell", "Blank_Column", "Resource_Buy", "Margin2", "Total_Days", "Total_Days2"); int intRowIndex = 0; foreach (DataRow row in dt.Rows) { double dblRowTotal = 0; for (int i = 14; i <= 26; i++) { dblRowTotal += (double)(dt.Rows[intRowIndex][i]); } dt.Rows[intRowIndex]["Total_Days"] = dblRowTotal; dt.Rows[intRowIndex]["Total_Days2"] = dblRowTotal; dt.Rows[intRowIndex]["Margin2"] = (dt.Rows[intRowIndex]["Margin"]); if ((string)dt.Rows[intRowIndex]["Margin2"] == "∞" || (string)dt.Rows[intRowIndex]["Margin2"] == "-∞" || (string)dt.Rows[intRowIndex]["Margin2"] == "NaN" || (string)dt.Rows[intRowIndex]["Margin2"] == "Infinity" || (string)dt.Rows[intRowIndex]["Margin2"] == "-Infinity") { dt.Rows[intRowIndex]["Margin2"] = "0"; } else { dt.Rows[intRowIndex]["Margin2"] = Math.Round(Convert.ToDouble(dt.Rows[intRowIndex]["Margin2"].ToString()), 0); } intRowIndex++; } dt.Columns.Remove("Margin"); //Rename columns dt.Columns["Resource_Name"].ColumnName = "Name"; dt.Columns["Project_Name"].ColumnName = "Project Name"; dt.Columns["Sector_Name"].ColumnName = "Sector"; dt.Columns["Client_Name"].ColumnName = "Client"; dt.Columns["Type_Name"].ColumnName = "Type"; dt.Columns["Role_Name"].ColumnName = "Role"; dt.Columns["Source_Name"].ColumnName = "Source"; dt.Columns["Resource_Buy"].ColumnName = "Pay (GBP)"; dt.Columns["Resource_Sell"].ColumnName = "Sell (GBP)"; dt.Columns["Resource_Sell_Euro"].ColumnName = "Sell (EUR)"; dt.Columns["Blank_Column"].ColumnName = " "; dt.Columns["Total_Days"].ColumnName = "Total Days"; dt.Columns["Total_Days2"].ColumnName = "Currently Mapped Out"; dt.Columns["Margin2"].ColumnName = "Margin (%)"; int RowIndex = 0; foreach (DataRow row in dt.Rows) { Id = intRowIndex; Client = dt.Rows[RowIndex][0].ToString(); Sector = dt.Rows[RowIndex][1].ToString(); Project_Name = dt.Rows[RowIndex][2].ToString(); Project_Type = dt.Rows[RowIndex][3].ToString(); Role = dt.Rows[RowIndex][4].ToString(); Name = dt.Rows[RowIndex][5].ToString(); Source = dt.Rows[RowIndex][6].ToString(); Sell_Euro = double.Parse(dt.Rows[RowIndex][7].ToString()); Sell_GBP = double.Parse(dt.Rows[RowIndex][8].ToString()); spacer = ""; Pay_GBP = dt.Rows[RowIndex][10].ToString(); Margin = double.Parse(dt.Rows[RowIndex][11].ToString()); Total_Days = double.Parse(dt.Rows[RowIndex][12].ToString()); Currently_Mapped_Out = double.Parse(dt.Rows[RowIndex][13].ToString()); M1 = double.Parse(dt.Rows[RowIndex][14].ToString()); M2 = double.Parse(dt.Rows[RowIndex][15].ToString()); M3 = double.Parse(dt.Rows[RowIndex][16].ToString()); M4 = double.Parse(dt.Rows[RowIndex][17].ToString()); M5 = double.Parse(dt.Rows[RowIndex][18].ToString()); M6 = double.Parse(dt.Rows[RowIndex][19].ToString()); M7 = double.Parse(dt.Rows[RowIndex][20].ToString()); M8 = double.Parse(dt.Rows[RowIndex][21].ToString()); M9 = double.Parse(dt.Rows[RowIndex][22].ToString()); M10 = double.Parse(dt.Rows[RowIndex][23].ToString()); M11 = double.Parse(dt.Rows[RowIndex][24].ToString()); M12 = double.Parse(dt.Rows[RowIndex][25].ToString()); RowIndex++; } }
public static DataTable GetRegisteredParticipants(Event ev, int level) { if (level == 0) sql = "SELECT TeamID,TTID,CurrentLevel FROM EventRegistrations WHERE EventID=@eventID"; else sql = "SELECT TeamID,TTID,CurrentLevel FROM EventRegistrations WHERE EventID=@eventID AND CurrentLevel>=" + level + ""; string[] s = { "@eventID" }; Connect.ConnectEMS(); c = new Connect(sql, s, ev.ID); if (c.ds.Tables[0].Rows.Count == 0) return null; DataColumn nameColumn = new DataColumn(); nameColumn.ColumnName = "Name"; //DataColumn serialNoColumn = new DataColumn(); //serialNoColumn.ColumnName = "SNo"; DataColumn contactColumn = new DataColumn(); contactColumn.ColumnName = "ContactNo"; DataColumn collegeColumn = new DataColumn(); collegeColumn.ColumnName = "College"; DataColumn eventColumn = new DataColumn(); eventColumn.ColumnName = "EventName"; if (ev.IsSinglePlayer) { DataTable participantDataTable = c.ds.Tables[0]; //participantDataTable.Columns.Add(serialNoColumn); participantDataTable.Columns.Add(nameColumn); participantDataTable.Columns.Add(contactColumn); participantDataTable.Columns.Add(collegeColumn); participantDataTable.Columns.Add(eventColumn); participantDataTable.Columns.Remove("TeamID"); Connect.ConnectTT(); int count = 1; foreach (DataRow row in participantDataTable.Rows) { //row[serialNoColumn] = count; sql = "SELECT Name,ContactNo,CollegeName FROM Participants,Colleges WHERE TTID=@ttID AND Participants.CollegeID = Colleges.CollegeID"; s[0] = "@ttID"; c = new Connect(sql, s, row["TTID"]); row["Name"] = c.ds.Tables[0].Rows[0]["Name"].ToString(); row["ContactNo"] = c.ds.Tables[0].Rows[0]["ContactNo"].ToString(); row["College"] = c.ds.Tables[0].Rows[0]["CollegeName"].ToString(); row["EventName"] = ev.Name; count++; } participantDataTable.SetColumnsOrder("TTID", "Name", "ContactNo", "College", "EventName", "CurrentLevel"); participantDataTable.Columns["TTID"].ColumnName = "Tech Trishna ID"; participantDataTable.Columns["CurrentLevel"].ColumnName = "Level"; participantDataTable.Columns["ContactNo"].ColumnName = "Contact No"; participantDataTable.Columns.Remove("EventName"); if (level != 0) participantDataTable.Columns.Remove("Level"); foreach (DataRow row in participantDataTable.Rows) { if (row["College"].ToString().Equals("Ajay Kumar Garg Engineering College")) row["College"] = "A.K.G.E.C."; } return participantDataTable; } else { DataTable dt = c.ds.Tables[0]; DataTable participantDataTable = new DataTable(); DataColumn teamColumn = new DataColumn(); DataColumn ttColumn = new DataColumn(); DataColumn levelColumn = new DataColumn(); levelColumn.ColumnName = "Level"; teamColumn.ColumnName = "TeamID"; ttColumn.ColumnName = "TTID"; participantDataTable.Columns.Add(teamColumn); //participantDataTable.Columns.Add(serialNoColumn); participantDataTable.Columns.Add(ttColumn); participantDataTable.Columns.Add(levelColumn); participantDataTable.Columns.Add(nameColumn); participantDataTable.Columns.Add(contactColumn); participantDataTable.Columns.Add(collegeColumn); participantDataTable.Columns.Add(eventColumn); Connect.ConnectEMS(); foreach (DataRow row in dt.Rows) { sql = "SELECT * FROM Teams WHERE TeamID=@teamID"; s[0] = "@teamID"; c = new Connect(sql, s, (int)row["TeamID"]); for (int i = 0; i < c.ds.Tables[0].Rows.Count; i++) { participantDataTable.Rows.Add(c.ds.Tables[0].Rows[i]["TeamID"].ToString(), c.ds.Tables[0].Rows[i]["TTID"].ToString(), row["CurrentLevel"].ToString()); } } Connect.ConnectTT(); int count = 1; foreach (DataRow row in participantDataTable.Rows) { //row[serialNoColumn] = count; sql = "SELECT Name,ContactNo,CollegeName FROM Participants,Colleges WHERE TTID=@ttID AND Participants.CollegeID = Colleges.CollegeID"; s[0] = "@ttID"; c = new Connect(sql, s, row["TTID"]); row["Name"] = c.ds.Tables[0].Rows[0]["Name"].ToString(); row["ContactNo"] = c.ds.Tables[0].Rows[0]["ContactNo"].ToString(); row["College"] = c.ds.Tables[0].Rows[0]["CollegeName"].ToString(); row["EventName"] = ev.Name; count++; } participantDataTable.SetColumnsOrder("TeamID", "TTID", "Name", "ContactNo", "College", "EventName", "Level"); participantDataTable.Columns["TTID"].ColumnName = "Tech Trishna ID"; participantDataTable.Columns["TeamID"].ColumnName = "Team ID"; participantDataTable.Columns["ContactNo"].ColumnName = "Contact No"; participantDataTable.Columns.Remove("EventName"); if (level != 0) participantDataTable.Columns.Remove("Level"); foreach (DataRow row in participantDataTable.Rows) { row["Tech Trishna ID"] = "TT" + row["Tech Trishna ID"]; if (row["College"].ToString().Equals("Ajay Kumar Garg Engineering College")) row["College"] = "A.K.G.E.C."; } return participantDataTable; } }