Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }