public ExportResultsDto ExportResultsForEventOld(int eventID) { DataTable dt = new DataTable(); dt.Columns.Add("Натпревар " + DateTime.Now.ToShortDateString(), typeof(string)); var evt = db.Events.Where(x => x.ID == eventID) .Include(x => x.Answers) .FirstOrDefault(); if (evt == null) { return(null); } for (int i = 1; i <= evt.Answers.Count; i++) { dt.Columns.Add(i.ToString(), typeof(string)); } var users = evt.Answers.Select(x => x.UserID).Distinct().ToList(); foreach (var user in users) { var User = db.Users.Find(user); var answers = evt.Answers.Where(x => x.UserID == user).ToList(); object[] rowData = new object[answers.Count + 1]; rowData[0] = User.FirstName + " " + User.LastName; int ct = 1; foreach (var item in answers) { rowData[ct] = item.timeElapsed + " | " + (item.isCorrect ? "Точно" : "Погрешно"); ct++; } dt.Rows.Add(rowData); } ExportResultsDto result = new ExportResultsDto(); result.table = dt; result.Name = "natprevar_" + evt.Start.ToShortDateString(); return(result); }
public ExportResultsDto ExportResultsForEvent(int eventID) { var ev = db.Events.Where(x => eventID == x.ID).Select(x => new { x.ID, x.Name, Snippets = x.EventSnippets.Select(y => y.OrderNumber) }).FirstOrDefault(); if (ev == null) { return(null); } var tempres = db.UserEvents.Where(x => x.EventID == eventID).Include(x => x.User.Answers).Select(x => new { x.UserID, x.User.UserName, x.User.FirstName, x.User.LastName, Answers = x.User.Answers.Where(y => y.EventID == eventID).Select(y => new { y.isCorrect, y.timeElapsed }) }).ToList(); DataTable dt = new DataTable(); dt.Columns.Add("Username", typeof(string)); dt.Columns.Add("Име", typeof(string)); foreach (var item in ev.Snippets) { dt.Columns.Add(item.ToString() + " (Time)"); dt.Columns.Add(item.ToString() + " (Correctness)"); } foreach (var user in tempres) { object[] rowdata = new object[user.Answers.Count() * 2 + 2]; rowdata[0] = user.UserName; rowdata[1] = string.Format("{0} {1}", user.FirstName, user.LastName); int i = 2; foreach (var item in user.Answers) { rowdata[i] = item.timeElapsed; rowdata[i + 1] = item.isCorrect ? 1 : 0; i += 2; } dt.Rows.Add(rowdata); } ExportResultsDto result = new ExportResultsDto(); result.table = dt; result.Name = ev.Name; return(result); }