コード例 #1
0
        public void Download()
        {
            TournamentAssignment ta = SessionUtil.GetTournamentAssignmentFromSession();
            Assignment           a  = SessionUtil.GetAssignmentFromSession();

            if (ta == null)
            {
                RedirectToAction("Index");
            }

            // Get the byte array with the file
            byte[] zipFile = ClientFacade.Instance.GetAssignmentZip(a);

            Response.ContentType = "application/octet-stream";

            // tell the browser to save rather than display inline
            Response.AddHeader("Content-Disposition", "attachment; filename=" + a.Name + ".zip");

            // tell the browser how big the file is
            Response.AddHeader("Content-Length", zipFile.Length.ToString());

            // send the file to the browser
            Response.BinaryWrite(zipFile);

            // make sure response is sent
            Response.Flush();

            // end response
            Response.End();
        }
コード例 #2
0
        private e.TournamentAssignment CreateEntityFromTournamentAssignment(TournamentAssignment ta)
        {
            if (ta == null)
            {
                return(null);
            }
            e.TournamentAssignment result = e.TournamentAssignment.CreateTournamentAssignment(ta.Id, ta.AssignmentOrder, ta.Points1, ta.Points2, ta.Points3, ta.IsActive, ta.CreateDate);

            result.AssignmentReference.Value = (from a in _m.Assignment
                                                where a.Id == ta.Assignment.Id
                                                select a).First();
            result.TournamentReference.Value = (from t in _m.Tournament
                                                where t.Id == ta.Tournament.Id
                                                select t).First();

            //e.TournamentAssignment result = new e.TournamentAssignment()
            //{
            //    Id = TA.Id,
            //    AssignmentOrder = TA.AssignmentOrder,
            //    IsActive = TA.IsActive,
            //    CreateDate = TA.CreateDate,
            //    Points1 = TA.Points1,
            //    Points2 = TA.Points2,
            //    Points3 = TA.Points3,
            //    Assignment = CreateEntityFromAssignment(TA.Assignment),
            //    Tournament = CreateEntityFromTournament(TA.Tournament)
            //};

            return(result);
        }
コード例 #3
0
        public ActionResult Index()
        {
            Team                 team = SessionUtil.GetTeamFromFormsAuthentication();
            Tournament           t    = SessionUtil.GetTournamentFromSession();
            TournamentAssignment ta   = SessionUtil.GetTournamentAssignmentFromSession();
            Assignment           a    = SessionUtil.GetAssignmentFromSession();

            if (t == null)
            {
                return(RedirectToAction("Index", "Assignments"));
            }


            // Get a list of TournamentAssignments with associated enrollments
            // Each enrollment has the last submit

            List <TournamentAssignment> taList = ClientFacade.Instance.GetTournamentScoreboard(t.Id);

            TournamentScoreboardModel model = new TournamentScoreboardModel();

            model.Fill(taList);

            // Make the page reload every 20 seconds
            Response.AddHeader("refresh", "20");

            return(View(model));
        }
コード例 #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            TournamentAssignment tournamentAssignment = db.TournamentAssignments.Find(id);

            db.TournamentAssignments.Remove(tournamentAssignment);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #5
0
        public ActionResult UploadSubmit()
        {
            Team                 team = SessionUtil.GetTeamFromFormsAuthentication();
            Tournament           t    = SessionUtil.GetTournamentFromSession();
            TournamentAssignment ta   = SessionUtil.GetTournamentAssignmentFromSession();
            Assignment           a    = SessionUtil.GetAssignmentFromSession();
            AssignmentEnrollment ae   = SessionUtil.GetAssignmentEnrollmentFromSession();

            if (Request.Files.Count == 1)
            {
                HttpPostedFileBase postedFile = Request.Files[0];

                TempData["SubmittedFileText"] = string.Format("File: {0} submitted", postedFile.FileName);

                //Check for big file (> 128KB)
                int submitMaxSize = int.Parse(ConfigurationManager.AppSettings["SubmitMaxSize"]) * 1024;

                if (postedFile.ContentLength > submitMaxSize)
                {
                    TempData["SubmittedFileText"] = string.Format("Submitted file is too large. Maximum size: {0}KB", submitMaxSize);
                    return(RedirectToAction("Index"));
                }

                //Check for right file extension
                if (postedFile.FileName.IndexOf(".cs") != postedFile.FileName.Length - 3)
                {
                    TempData["SubmittedFileText"] = "Submitted file doesn't have extension '.cs'.";
                    return(RedirectToAction("Index"));
                }

                //Construct the submit
                Submit s = new Submit()
                {
                    FileName             = Path.GetFileName(postedFile.FileName),
                    Team                 = team,
                    TournamentAssignment = ta,
                    AssignmentEnrollment = ae
                };
                s.Data = new byte[postedFile.ContentLength];

                postedFile.InputStream.Read(s.Data, 0, postedFile.ContentLength);

                // Do the submit
                try
                {
                    ClientFacade.Instance.SaveSubmit(s);
                }
                catch (MoCSException e)
                {
                    TempData["SubmittedFileText"] = "Unable to process submit. Reason: " + e.Message;
                }
            }

            return(RedirectToAction("Index"));
        }
コード例 #6
0
        public void TournamentAssignment_SelectAddSelectDeleteSelect_OK()
        {
            using (System.Transactions.TransactionScope updateTransaction =
                       new System.Transactions.TransactionScope())
            {
                string     connectionString = GetConnectionstring();
                DataAccess d2 = new DataAccess(connectionString);

                Tournament t = new Tournament();
                t.Id   = -1;
                t.Name = "TESTING";
                d2.SaveTournament(t);

                Assignment a = new Assignment();
                a.AssignmentId   = -1;
                a.AssignmentName = "ASSIGNMENT";
                d2.SaveAssignment(a);

                List <TournamentAssignment> tournamentAssignmentsBefore = d2.GetTournamentAssignmentsForTournament(t.Id);
                //there should be no assignments for the new tournament
                Assert.AreEqual(tournamentAssignmentsBefore.Count, 0);

                TournamentAssignment ta = new TournamentAssignment();
                ta.TournamentAssignmentId = -1;
                ta.TournamentId           = t.Id;
                ta.AssignmentId           = a.AssignmentId;
                ta.AssignmentOrder        = 1;
                ta.Points1 = 100;
                ta.Points2 = 50;
                ta.Points3 = 25;
                ta.Active  = false;

                d2.SaveTournamentAssignment(ta);
                //id should be set
                Assert.AreNotEqual(ta.TournamentAssignmentId, -1);

                List <TournamentAssignment> tournamentAssignmentsAfterSave = d2.GetTournamentAssignmentsForTournament(t.Id);
                //there should be one more
                Assert.AreEqual(tournamentAssignmentsAfterSave.Count, tournamentAssignmentsBefore.Count + 1);

                TournamentAssignment byId = d2.GetTournamentAssignmentById(ta.TournamentAssignmentId);
                Assert.AreEqual(ta.Points1, byId.Points1);
                Assert.AreEqual(ta.Points2, byId.Points2);
                Assert.AreEqual(ta.Points3, byId.Points3);
                Assert.AreEqual(ta.Active, byId.Active);
                Assert.AreEqual(a.AssignmentName, byId.AssignmentName);

                d2.DeleteTournamentAssignment(ta.TournamentAssignmentId);

                List <TournamentAssignment> tournamentAssignmentsAfterDelete = d2.GetTournamentAssignmentsForTournament(t.Id);
                //after deleting, there should be 0 entries again
                Assert.AreEqual(tournamentAssignmentsBefore.Count, tournamentAssignmentsAfterDelete.Count);
            }
        }
コード例 #7
0
 public ActionResult Edit([Bind(Include = "TournamentAssignmentId,TournamentId,TeamId")] TournamentAssignment tournamentAssignment)
 {
     if (ModelState.IsValid)
     {
         db.Entry(tournamentAssignment).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.TeamId       = new SelectList(db.Teams, "TeamId", "manager", tournamentAssignment.TeamId);
     ViewBag.TournamentId = new SelectList(db.Tournaments, "TournamentId", "name", tournamentAssignment.TournamentId);
     return(View(tournamentAssignment));
 }
コード例 #8
0
        public ActionResult Create([Bind(Include = "TournamentAssignmentId,TournamentId,TeamId")] TournamentAssignment tournamentAssignment)
        {
            if (ModelState.IsValid)
            {
                db.TournamentAssignments.Add(tournamentAssignment);
                db.SaveChanges();
                return(RedirectToAction("Index", "Tournament"));
            }

            ViewBag.TeamId       = new SelectList(db.Teams, "TeamId", "manager", tournamentAssignment.TeamId);
            ViewBag.TournamentId = new SelectList(db.Tournaments, "TournamentId", "name", tournamentAssignment.TournamentId);
            return(View(tournamentAssignment));
        }
コード例 #9
0
ファイル: AccountModels.cs プロジェクト: pjvds/MoCS
        public static TournamentAssignment GetTournamentAssignmentFromSession()
        {
            TournamentAssignment result = null;

            if (HttpContext.Current.Session["tournamentAssignmentId"] != null)
            {
                result = new TournamentAssignment()
                {
                    Id = (int)HttpContext.Current.Session["tournamentAssignmentId"]
                };
            }
            return(result);
        }
コード例 #10
0
        // GET: TournamentAssignments/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TournamentAssignment tournamentAssignment = db.TournamentAssignments.Find(id);

            if (tournamentAssignment == null)
            {
                return(HttpNotFound());
            }
            return(View(tournamentAssignment));
        }
コード例 #11
0
ファイル: ClientFacade.cs プロジェクト: ruudkok/MoCS
        public TournamentAssignment GetTournamentAssignmentById(int id, bool includeServerFiles)
        {
            TournamentAssignment result = _dataAccess.GetTournamentAssignmentById(id);

            if (result != null)
            {
                // TODO Fill the object with additional data from the XML-file
                if (!string.IsNullOrEmpty(result.Assignment.Path))
                {
                    result.Assignment = FacadeHelpers.FillAssignmentDetailsFromXml(result.Assignment, _fileSystem, includeServerFiles);
                }
            }

            return(result);
        }
コード例 #12
0
        // GET: TournamentAssignments/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TournamentAssignment tournamentAssignment = db.TournamentAssignments.Find(id);

            if (tournamentAssignment == null)
            {
                return(HttpNotFound());
            }
            ViewBag.TeamId       = new SelectList(db.Teams, "TeamId", "manager", tournamentAssignment.TeamId);
            ViewBag.TournamentId = new SelectList(db.Tournaments, "TournamentId", "name", tournamentAssignment.TournamentId);
            return(View(tournamentAssignment));
        }
コード例 #13
0
ファイル: ClientFacade.cs プロジェクト: sandervandevelde/MoCS
        private TournamentAssignment CreateIdTournamentAssignment(TournamentAssignment ta)
        {
            TournamentAssignment result = new TournamentAssignment
            {
                Id = ta.Id,
                AssignmentOrder = 0,
                CreateDate      = DateTime.Now,
                IsActive        = true,
                Tournament      = CreateIdTournament(ta.Tournament),
                Assignment      = CreateIdAssignment(ta.Assignment),
                Points1         = 0,
                Points2         = 0,
                Points3         = 0
            };

            return(result);
        }
コード例 #14
0
ファイル: EntityDataAccess.cs プロジェクト: ruudkok/MoCS
        private e.TournamentAssignment CreateEntityFromTournamentAssignment(TournamentAssignment ta)
        {
            if (ta == null)
            {
                return(null);
            }

            e.TournamentAssignment result = e.TournamentAssignment.CreateTournamentAssignment(ta.Id, ta.AssignmentOrder, ta.Points1, ta.Points2, ta.Points3, ta.IsActive, ta.CreateDate);

            result.AssignmentReference.Value = (from a in _m.Assignment
                                                where a.Id == ta.Assignment.Id
                                                select a).First();
            result.TournamentReference.Value = (from t in _m.Tournament
                                                where t.Id == ta.Tournament.Id
                                                select t).First();

            return(result);
        }
コード例 #15
0
        public ActionResult Assignments()
        {
            Team                 team = SessionUtil.GetTeamFromFormsAuthentication();
            Tournament           t    = SessionUtil.GetTournamentFromSession();
            TournamentAssignment ta   = SessionUtil.GetTournamentAssignmentFromSession();
            Assignment           a    = SessionUtil.GetAssignmentFromSession();

            if (t == null)
            {
                return(RedirectToAction("Index"));
            }


            // Get the assignments of the selected tournament
            TournamentAssignmentsModel taModel = new TournamentAssignmentsModel();

            List <TournamentAssignment> beTournamentAssignmentList = new List <TournamentAssignment>();

            beTournamentAssignmentList = ClientFacade.Instance.GetTournamentAssignmentsForTournament(t.Id);

            beTournamentAssignmentList.Sort((ta1, ta2) => ta1.AssignmentOrder.CompareTo(ta2.AssignmentOrder));

            foreach (TournamentAssignment beTA in beTournamentAssignmentList)
            {
                taModel.Add(new TournamentAssignmentModel()
                {
                    Id             = beTA.Id,
                    IsActive       = beTA.IsActive,
                    AssignmentId   = beTA.Assignment.Id,
                    AssignmentName = beTA.Assignment.Name,
                    Author         = beTA.Assignment.Author,
                    Category       = beTA.Assignment.Category,
                    Difficulty     = beTA.Assignment.Difficulty,
                    FriendlyName   = beTA.Assignment.FriendlyName,
                    Tagline        = beTA.Assignment.Tagline,
                    Points         = beTA.Points1
                });
            }

            ViewData["tournamentId"]   = t.Id;
            ViewData["tournamentName"] = t.Name;

            return(View(taModel));
        }
コード例 #16
0
        public static void SetSession(Tournament t, TournamentAssignment ta, Assignment a, AssignmentEnrollment ae)
        {
            if (t != null)
            {
                HttpContext.Current.Session["tournamentId"]   = t.Id;
                HttpContext.Current.Session["tournamentName"] = t.Name;
            }
            else
            {
                HttpContext.Current.Session.Remove("tournamentId");
                HttpContext.Current.Session.Remove("tournamentName");
            }

            if (ta != null)
            {
                HttpContext.Current.Session["tournamentAssignmentId"] = ta.Id;
            }
            else
            {
                HttpContext.Current.Session.Remove("tournamentAssignmentId");
            }

            if (a != null)
            {
                HttpContext.Current.Session["assignmentId"]   = a.Id;
                HttpContext.Current.Session["assignmentName"] = a.Name;
            }
            else
            {
                HttpContext.Current.Session.Remove("assignmentId");
                HttpContext.Current.Session.Remove("assignmentName");
            }

            if (ae != null)
            {
                HttpContext.Current.Session["assignmentEnrollmentId"]        = ae.Id;
                HttpContext.Current.Session["assignmentEnrollmentStartDate"] = ae.StartDate;
            }
            else
            {
                HttpContext.Current.Session.Remove("assignmentEnrollmentId");
                HttpContext.Current.Session.Remove("assignmentEnrollmentStartDate");
            }
        }
コード例 #17
0
        private TournamentAssignment CreateTournamentAssignmentFromEntity(e.TournamentAssignment eTournamentAssignment)
        {
            if (eTournamentAssignment == null)
            {
                return(null);
            }
            TournamentAssignment result = new TournamentAssignment()
            {
                Id = eTournamentAssignment.Id,
                AssignmentOrder = eTournamentAssignment.AssignmentOrder,
                IsActive        = eTournamentAssignment.IsActive,
                CreateDate      = eTournamentAssignment.CreateDate,
                Points1         = eTournamentAssignment.Points1,
                Points2         = eTournamentAssignment.Points2,
                Points3         = eTournamentAssignment.Points3,
                Assignment      = CreateAssignmentFromEntity(eTournamentAssignment.Assignment),
                Tournament      = CreateTournamentFromEntity(eTournamentAssignment.Tournament)
            };

            return(result);
        }
コード例 #18
0
ファイル: AssignmentsController.cs プロジェクト: ruudkok/MoCS
        public ActionResult SelectAssignment(int assignmentId, int tournamentAssignmentId, string assignmentName)
        {
            //Team team = SessionUtil.GetTeamFromFormsAuthentication();
            Tournament t = SessionUtil.GetTournamentFromSession();

            if (t == null)
            {
                return(RedirectToAction("Index"));
            }

            // Check for existence of tournamentAssignment
            TournamentAssignment ta = ClientFacade.Instance.GetTournamentAssignmentById(tournamentAssignmentId, false);

            if (ta == null)
            {
                return(RedirectToAction("Assignments"));
            }

            //Check if the tournamentassignment is active
            if (!ta.IsActive)
            {
                return(RedirectToAction("Assignments"));
            }

            // Check if the tournamentassignment is part of the selected tournament
            if (ta.Tournament.Id != t.Id)
            {
                return(RedirectToAction("Index"));
            }

            // Set session context
            SessionUtil.SetSession(t, ta, new Assignment()
            {
                Id = ta.Assignment.Id, Name = ta.Assignment.Name
            }, null);

            return(RedirectToAction("Index", "CurrentAssignment"));
        }
コード例 #19
0
ファイル: ClientFacade.cs プロジェクト: sandervandevelde/MoCS
        public TournamentAssignment GetTournamentAssignmentById(int id, bool includeServerFiles)
        {
            TournamentAssignment result = _dataAccess.GetTournamentAssignmentById(id);

            if (result != null)
            {
                // TODO Fill the object with additional data from the XML-file
                if (!string.IsNullOrEmpty(result.Assignment.Path))
                {
                    result.Assignment = FacadeHelpers.FillAssignmentDetailsFromXml(result.Assignment, _fileSystem, includeServerFiles);
                }

                //result.Assignment.AssignmentFiles
                //result.Assignment.Author
                //result.Assignment.Category
                //result.Assignment.Difficulty =
                //result.Assignment.ClassNameToImplement =
                //result.Assignment.InterfaceNameToImplement =
                //result.Assignment.Version =
            }

            return(result);
        }
コード例 #20
0
        public ActionResult Enroll()
        {
            Team                 team = SessionUtil.GetTeamFromFormsAuthentication();
            Tournament           t    = SessionUtil.GetTournamentFromSession();
            TournamentAssignment ta   = SessionUtil.GetTournamentAssignmentFromSession();
            Assignment           a    = SessionUtil.GetAssignmentFromSession();

            if (ta == null)
            {
                return(RedirectToAction("Index", "Assignments"));
            }

            // TODO: Register the enrollment
            AssignmentEnrollment ae = new AssignmentEnrollment()
            {
                IsActive  = true,
                StartDate = DateTime.Now,
                Team      = new Team {
                    Id = team.Id
                },
                TournamentAssignment = new TournamentAssignment
                {
                    Id         = ta.Id,
                    Tournament = new Tournament {
                        Id = t.Id
                    },
                    Assignment = new Assignment {
                        Id = a.Id
                    }
                }
            };

            ClientFacade.Instance.SaveAssignmentEnrollment(ae);

            return(RedirectToAction("Index"));
        }
コード例 #21
0
ファイル: AssignmentsController.cs プロジェクト: ruudkok/MoCS
        public ActionResult Index()
        {
            Team                 team = SessionUtil.GetTeamFromFormsAuthentication();
            Tournament           t    = SessionUtil.GetTournamentFromSession();
            TournamentAssignment ta   = SessionUtil.GetTournamentAssignmentFromSession();
            Assignment           a    = SessionUtil.GetAssignmentFromSession();

            // Get the tournaments
            TournamentsModel  tournaments      = new TournamentsModel();
            List <Tournament> beTournamentList = new List <Tournament>();

            beTournamentList = ClientFacade.Instance.GetTournaments();

            foreach (Tournament beTournament in beTournamentList)
            {
                tournaments.Add(new TournamentModel()
                {
                    Id   = beTournament.Id,
                    Name = beTournament.Name
                });
            }

            return(View(tournaments));
        }
コード例 #22
0
        public void TeamSubmit_SelectAddSelectDeleteSelect_OK()
        {
            using (System.Transactions.TransactionScope updateTransaction =
                       new System.Transactions.TransactionScope())
            {
                string     connectionString = GetConnectionstring();
                DataAccess d2 = new DataAccess(connectionString);

                Team team = new Team();
                team.ID          = -1;
                team.TeamName    = "blabla";
                team.TeamMembers = "asdf";
                team.Password    = "******";
                team.IsAdmin     = false;
                d2.SaveTeam(team);

                Tournament t = new Tournament();
                t.Id   = -1;
                t.Name = "TESTING";
                d2.SaveTournament(t);

                Assignment a = new Assignment();
                a.AssignmentId   = -1;
                a.AssignmentName = "ASSIGNMENT";
                d2.SaveAssignment(a);

                TournamentAssignment ta = new TournamentAssignment();
                ta.TournamentAssignmentId = -1;
                ta.TournamentId           = t.Id;
                ta.AssignmentId           = a.AssignmentId;
                ta.AssignmentOrder        = 1;
                ta.Points1 = 100;
                ta.Points2 = 50;
                ta.Points3 = 25;
                ta.Active  = false;
                d2.SaveTournamentAssignment(ta);

                TeamTournamentAssignment tta = new TeamTournamentAssignment();
                tta.TeamTournamentAssignmentId = -1;
                tta.TeamId = team.ID;
                tta.TournamentAssignmentId = ta.TournamentAssignmentId;
                d2.SaveTeamTournamentAssignment(tta);

                Submit submit = new Submit();
                submit.ID = -1;
                submit.TeamTournamentAssignmentId = (int)tta.TeamTournamentAssignmentId;
                submit.TeamId = team.ID;
                byte[] uploadstream = new byte[2] {
                    1, 2
                };
                submit.UploadStream = uploadstream;
                submit.FileName     = "somename.cs";
                d2.InsertTeamSubmit(submit);

                Assert.AreNotEqual(submit.ID, -1);

                List <Submit> submits = d2.GetTeamSubmitsForAssignment(submit.TeamTournamentAssignmentId);

                Assert.AreEqual(submits.Count, 1);

                //getbyid
                Submit byId = d2.GetTeamSubmitById(submit.ID);

                Assert.AreEqual(byId.ID, submit.ID);

                d2.DeleteTeamSubmit(submit.ID);

                List <Submit> submitsAfterDelete = d2.GetTeamSubmitsForAssignment(submit.TeamTournamentAssignmentId);

                Assert.AreEqual(0, submitsAfterDelete.Count);
            }
        }
コード例 #23
0
ファイル: MoCSModel.Designer.cs プロジェクト: ruudkok/MoCS
 /// <summary>
 /// Create a new TournamentAssignment object.
 /// </summary>
 /// <param name="id">Initial value of Id.</param>
 /// <param name="assignmentOrder">Initial value of AssignmentOrder.</param>
 /// <param name="points1">Initial value of Points1.</param>
 /// <param name="points2">Initial value of Points2.</param>
 /// <param name="points3">Initial value of Points3.</param>
 /// <param name="isActive">Initial value of IsActive.</param>
 /// <param name="createDate">Initial value of CreateDate.</param>
 public static TournamentAssignment CreateTournamentAssignment(int id, int assignmentOrder, int points1, int points2, int points3, bool isActive, global::System.DateTime createDate)
 {
     TournamentAssignment tournamentAssignment = new TournamentAssignment();
     tournamentAssignment.Id = id;
     tournamentAssignment.AssignmentOrder = assignmentOrder;
     tournamentAssignment.Points1 = points1;
     tournamentAssignment.Points2 = points2;
     tournamentAssignment.Points3 = points3;
     tournamentAssignment.IsActive = isActive;
     tournamentAssignment.CreateDate = createDate;
     return tournamentAssignment;
 }
コード例 #24
0
        public ActionResult Index()
        {
            Team                 team = SessionUtil.GetTeamFromFormsAuthentication();
            Tournament           t    = SessionUtil.GetTournamentFromSession();
            TournamentAssignment ta   = SessionUtil.GetTournamentAssignmentFromSession();
            Assignment           a    = SessionUtil.GetAssignmentFromSession();

            if (ta == null)
            {
                return(RedirectToAction("Index", "Assignments"));
            }

            bool hasEnrolled = false;

            // Find enrollment
            List <AssignmentEnrollment> AEList;

            AEList = ClientFacade.Instance.GetAssignmentEnrollmentsForTeamForTournamentAssignment(ta.Id, team.Id);
            //MoCSServiceProxy.Instance.GetAssignmentEnrollmentsForTeamForTournament(teamId, tournamentId);

            // See if the team has enrolled for the tournament assignment.
            AssignmentEnrollment ae = AEList.Find(i => i.TournamentAssignment.Id == ta.Id && i.IsActive);

            if (ae != null)
            {
                hasEnrolled = true;
                SessionUtil.SetSession(t, ta, a, ae);
            }
            else
            {
                SessionUtil.SetSession(t, ta, a, null);
            }

            List <Submit> submitsByTeam = new List <Submit>();

            ta = ClientFacade.Instance.GetTournamentAssignmentById(ta.Id, false);
            if (hasEnrolled)
            {
                submitsByTeam = ClientFacade.Instance.GetSubmitsForAssignmentEnrollment(ae.Id);
            }

            // Construct the model
            CurrentAssignmentModel caModel = new CurrentAssignmentModel();

            caModel.HasEnrolled              = hasEnrolled;
            caModel.AssignmentName           = ta.Assignment.FriendlyName;
            caModel.AssignmentTagline        = ta.Assignment.Tagline;
            caModel.AssignmentCategory       = ta.Assignment.Category;
            caModel.AssignmentDifficulty     = ta.Assignment.Difficulty;
            caModel.AssignmentEnrollmentTime = DateTime.Now;

            caModel.DownloadURL = "http://google.com";

            caModel.SubmitModelList     = new List <SubmitModel>();
            caModel.TabContentModelList = new List <TabContentModel>();

            // Get the AssignmentFiles and Submits if the team has enrolled for this assignment

            if (hasEnrolled)
            {
                foreach (var tc in ta.Assignment.AssignmentFiles)
                {
                    caModel.TabContentModelList.Add(new TabContentModel()
                    {
                        Name        = tc.Name,
                        ContentType = "plaintext",
                        Content     = UTF8Encoding.UTF8.GetString(tc.Data).Replace(Environment.NewLine, "<br />")
                    });
                }

                foreach (var submit in submitsByTeam)
                {
                    string timeTaken = Math.Floor(submit.SecondsSinceEnrollment / 60d) + ":" + submit.SecondsSinceEnrollment % 60;
                    caModel.SubmitModelList.Add(new SubmitModel()
                    {
                        Id                = submit.Id,
                        Result            = submit.Status,
                        TimeTaken         = timeTaken,
                        SubmitDate        = submit.SubmitDate,
                        ProcessingDetails = submit.ProcessingDetails,
                        FileContents      = submit.FileContents.Replace(Environment.NewLine, "\r\n") //.Replace(Environment.NewLine, "<br />")
                    });
                }
            }

            return(View(caModel));
        }
コード例 #25
0
        public void TeamTournamentAssignment_SelectAddSelectDeleteSelect_OK()
        {
            using (System.Transactions.TransactionScope updateTransaction =
                       new System.Transactions.TransactionScope())
            {
                string     connectionString = GetConnectionstring();
                DataAccess d2 = new DataAccess(connectionString);

                Team team = new Team();
                team.ID          = -1;
                team.TeamName    = "blabla";
                team.TeamMembers = "asdf";
                team.Password    = "******";
                team.IsAdmin     = false;
                d2.SaveTeam(team);

                Tournament t = new Tournament();
                t.Id   = -1;
                t.Name = "TESTING";
                d2.SaveTournament(t);

                Assignment a = new Assignment();
                a.AssignmentId   = -1;
                a.AssignmentName = "ASSIGNMENT";
                d2.SaveAssignment(a);

                TournamentAssignment ta = new TournamentAssignment();
                ta.TournamentAssignmentId = -1;
                ta.TournamentId           = t.Id;
                ta.AssignmentId           = a.AssignmentId;
                ta.AssignmentOrder        = 1;
                ta.Points1 = 100;
                ta.Points2 = 50;
                ta.Points3 = 25;
                ta.Active  = false;

                d2.SaveTournamentAssignment(ta);

                List <TeamTournamentAssignment> ttaBefore = d2.GetTeamTournamentAssignmentsForTeam(ta.TournamentId, team.ID);
                Assert.AreNotEqual(ttaBefore.Count, 0);

                TeamTournamentAssignment tta = new TeamTournamentAssignment();
                tta.TeamTournamentAssignmentId = -1;
                tta.TeamId = team.ID;
                tta.TournamentAssignmentId = ta.TournamentAssignmentId;


                d2.SaveTeamTournamentAssignment(tta);
                //id should be set
                Assert.AreNotEqual(tta.TeamTournamentAssignmentId, -1);

                List <TeamTournamentAssignment> ttaAfterSave = d2.GetTeamTournamentAssignmentsForTeam(ta.TournamentId, team.ID);
                Assert.AreEqual(ttaAfterSave.Count, 1);

                TeamTournamentAssignment ttaById = d2.GetTeamTournamentAssignmentById((int)tta.TeamTournamentAssignmentId);
                Assert.AreEqual(tta.TeamId, ttaById.TeamId);

                d2.DeleteTeamTournamentAssignment((int)tta.TeamTournamentAssignmentId);

                List <TeamTournamentAssignment> ttaAfterDelete = d2.GetTeamTournamentAssignmentsForTeam(ta.TournamentId, team.ID);
                //    Assert.AreEqual(ttaAfterDelete.Count, 0);
            }
        }
コード例 #26
0
ファイル: EntityDataAccess.cs プロジェクト: Noduk/MoCS
        private e.TournamentAssignment CreateEntityFromTournamentAssignment(TournamentAssignment ta)
        {
            if (ta == null)
            {
                return null;
            }
            e.TournamentAssignment result = e.TournamentAssignment.CreateTournamentAssignment(ta.Id, ta.AssignmentOrder, ta.Points1, ta.Points2, ta.Points3, ta.IsActive, ta.CreateDate);

            result.AssignmentReference.Value = (from a in _m.Assignment
                                                where a.Id == ta.Assignment.Id
                                                select a).First();
            result.TournamentReference.Value = (from t in _m.Tournament
                                                where t.Id == ta.Tournament.Id
                                                select t).First();

            //e.TournamentAssignment result = new e.TournamentAssignment()
            //{
            //    Id = TA.Id,
            //    AssignmentOrder = TA.AssignmentOrder,
            //    IsActive = TA.IsActive,
            //    CreateDate = TA.CreateDate,
            //    Points1 = TA.Points1,
            //    Points2 = TA.Points2,
            //    Points3 = TA.Points3,
            //    Assignment = CreateEntityFromAssignment(TA.Assignment),
            //    Tournament = CreateEntityFromTournament(TA.Tournament)
            //};

            return result;
        }
コード例 #27
0
ファイル: EntityDataAccess.cs プロジェクト: Noduk/MoCS
        private TournamentAssignment CreateTournamentAssignmentFromEntity(e.TournamentAssignment eTournamentAssignment)
        {
            if (eTournamentAssignment == null)
            {
                return null;
            }
            TournamentAssignment result = new TournamentAssignment()
            {
                Id = eTournamentAssignment.Id,
                AssignmentOrder = eTournamentAssignment.AssignmentOrder,
                IsActive = eTournamentAssignment.IsActive,
                CreateDate = eTournamentAssignment.CreateDate,
                Points1 = eTournamentAssignment.Points1,
                Points2 = eTournamentAssignment.Points2,
                Points3 = eTournamentAssignment.Points3,
                Assignment = CreateAssignmentFromEntity(eTournamentAssignment.Assignment),
                Tournament = CreateTournamentFromEntity(eTournamentAssignment.Tournament)
            };

            return result;
        }
コード例 #28
0
ファイル: DataAccessTests.cs プロジェクト: ruudkok/MoCS
        public void TeamSubmit_SelectAddSelectDeleteSelect_OK()
        {
            using (System.Transactions.TransactionScope updateTransaction =
                    new System.Transactions.TransactionScope())
            {
                string connectionString = GetConnectionstring();
                DataAccess d2 = new DataAccess(connectionString);

                Team team = new Team();
                team.ID = -1;
                team.TeamName = "blabla";
                team.TeamMembers = "asdf";
                team.Password = "******";
                team.IsAdmin = false;
                d2.SaveTeam(team);

                Tournament t = new Tournament();
                t.Id = -1;
                t.Name = "TESTING";
                d2.SaveTournament(t);

                Assignment a = new Assignment();
                a.AssignmentId = -1;
                a.AssignmentName = "ASSIGNMENT";
                d2.SaveAssignment(a);

                TournamentAssignment ta = new TournamentAssignment();
                ta.TournamentAssignmentId = -1;
                ta.TournamentId = t.Id;
                ta.AssignmentId = a.AssignmentId;
                ta.AssignmentOrder = 1;
                ta.Points1 = 100;
                ta.Points2 = 50;
                ta.Points3 = 25;
                ta.Active = false;
                d2.SaveTournamentAssignment(ta);

                TeamTournamentAssignment tta = new TeamTournamentAssignment();
                tta.TeamTournamentAssignmentId = -1;
                tta.TeamId = team.ID;
                tta.TournamentAssignmentId = ta.TournamentAssignmentId;
                d2.SaveTeamTournamentAssignment(tta);

                Submit submit = new Submit();
                submit.ID = -1;
                submit.TeamTournamentAssignmentId = (int)tta.TeamTournamentAssignmentId;
                submit.TeamId = team.ID;
                byte[] uploadstream = new byte[2] {1,2};
                submit.UploadStream = uploadstream;
                submit.FileName = "somename.cs";
                d2.InsertTeamSubmit(submit);

                Assert.AreNotEqual(submit.ID, -1);

                List<Submit> submits = d2.GetTeamSubmitsForAssignment(submit.TeamTournamentAssignmentId);

                Assert.AreEqual(submits.Count, 1);

                //getbyid
                Submit byId = d2.GetTeamSubmitById(submit.ID);

                Assert.AreEqual(byId.ID,submit.ID);

                d2.DeleteTeamSubmit(submit.ID);

                List<Submit> submitsAfterDelete = d2.GetTeamSubmitsForAssignment(submit.TeamTournamentAssignmentId);

                Assert.AreEqual(0, submitsAfterDelete.Count);

            }
        }
コード例 #29
0
ファイル: DataAccessTests.cs プロジェクト: ruudkok/MoCS
        public void TournamentAssignment_SelectAddSelectDeleteSelect_OK()
        {
            using (System.Transactions.TransactionScope updateTransaction =
              new System.Transactions.TransactionScope())
            {
                string connectionString = GetConnectionstring();
                DataAccess d2 = new DataAccess(connectionString);

                Tournament t = new Tournament();
                t.Id = -1;
                t.Name = "TESTING";
                d2.SaveTournament(t);

                Assignment a = new Assignment();
                a.AssignmentId = -1;
                a.AssignmentName = "ASSIGNMENT";
                d2.SaveAssignment(a);

                List<TournamentAssignment> tournamentAssignmentsBefore = d2.GetTournamentAssignmentsForTournament(t.Id);
                //there should be no assignments for the new tournament
                Assert.AreEqual(tournamentAssignmentsBefore.Count, 0);

                TournamentAssignment ta = new TournamentAssignment();
                ta.TournamentAssignmentId = -1;
                ta.TournamentId = t.Id;
                ta.AssignmentId = a.AssignmentId;
                ta.AssignmentOrder = 1;
                ta.Points1 = 100;
                ta.Points2 = 50;
                ta.Points3 = 25;
                ta.Active = false;

                d2.SaveTournamentAssignment(ta);
                //id should be set
                Assert.AreNotEqual(ta.TournamentAssignmentId, -1);

                List<TournamentAssignment> tournamentAssignmentsAfterSave = d2.GetTournamentAssignmentsForTournament(t.Id);
                //there should be one more
                Assert.AreEqual(tournamentAssignmentsAfterSave.Count, tournamentAssignmentsBefore.Count + 1);

                TournamentAssignment byId = d2.GetTournamentAssignmentById(ta.TournamentAssignmentId);
                Assert.AreEqual(ta.Points1, byId.Points1);
                Assert.AreEqual(ta.Points2, byId.Points2);
                Assert.AreEqual(ta.Points3, byId.Points3);
                Assert.AreEqual(ta.Active, byId.Active);
                Assert.AreEqual(a.AssignmentName, byId.AssignmentName);

                d2.DeleteTournamentAssignment(ta.TournamentAssignmentId);

                List<TournamentAssignment> tournamentAssignmentsAfterDelete = d2.GetTournamentAssignmentsForTournament(t.Id);
                //after deleting, there should be 0 entries again
                Assert.AreEqual(tournamentAssignmentsBefore.Count, tournamentAssignmentsAfterDelete.Count);
            }
        }
コード例 #30
0
ファイル: DataAccessTests.cs プロジェクト: ruudkok/MoCS
        public void TeamTournamentAssignment_SelectAddSelectDeleteSelect_OK()
        {
            using (System.Transactions.TransactionScope updateTransaction =
                new System.Transactions.TransactionScope())
            {
                string connectionString = GetConnectionstring();
                DataAccess d2 = new DataAccess(connectionString);

                Team team = new Team();
                team.ID = -1;
                team.TeamName = "blabla";
                team.TeamMembers = "asdf";
                team.Password = "******";
                team.IsAdmin=false;
                d2.SaveTeam(team);

                Tournament t = new Tournament();
                t.Id = -1;
                t.Name = "TESTING";
                d2.SaveTournament(t);

                Assignment a = new Assignment();
                a.AssignmentId = -1;
                a.AssignmentName = "ASSIGNMENT";
                d2.SaveAssignment(a);

                TournamentAssignment ta = new TournamentAssignment();
                ta.TournamentAssignmentId = -1;
                ta.TournamentId = t.Id;
                ta.AssignmentId = a.AssignmentId;
                ta.AssignmentOrder = 1;
                ta.Points1 = 100;
                ta.Points2 = 50;
                ta.Points3 = 25;
                ta.Active = false;

                d2.SaveTournamentAssignment(ta);

                List<TeamTournamentAssignment> ttaBefore = d2.GetTeamTournamentAssignmentsForTeam(ta.TournamentId, team.ID);
                Assert.AreNotEqual(ttaBefore.Count, 0);

                TeamTournamentAssignment tta = new TeamTournamentAssignment();
                tta.TeamTournamentAssignmentId = -1;
                tta.TeamId = team.ID;
                tta.TournamentAssignmentId = ta.TournamentAssignmentId;

                d2.SaveTeamTournamentAssignment(tta);
                //id should be set
                Assert.AreNotEqual(tta.TeamTournamentAssignmentId, -1);

                List<TeamTournamentAssignment> ttaAfterSave = d2.GetTeamTournamentAssignmentsForTeam(ta.TournamentId, team.ID);
                Assert.AreEqual(ttaAfterSave.Count, 1);

                TeamTournamentAssignment ttaById = d2.GetTeamTournamentAssignmentById((int)tta.TeamTournamentAssignmentId);
                Assert.AreEqual(tta.TeamId, ttaById.TeamId);

                d2.DeleteTeamTournamentAssignment((int)tta.TeamTournamentAssignmentId);

                List<TeamTournamentAssignment> ttaAfterDelete = d2.GetTeamTournamentAssignmentsForTeam(ta.TournamentId, team.ID);
            //    Assert.AreEqual(ttaAfterDelete.Count, 0);

            }
        }
コード例 #31
0
ファイル: EntityDataAccess.cs プロジェクト: ruudkok/MoCS
        private e.TournamentAssignment CreateEntityFromTournamentAssignment(TournamentAssignment ta)
        {
            if (ta == null)
            {
                return null;
            }

            e.TournamentAssignment result = e.TournamentAssignment.CreateTournamentAssignment(ta.Id, ta.AssignmentOrder, ta.Points1, ta.Points2, ta.Points3, ta.IsActive, ta.CreateDate);

            result.AssignmentReference.Value = (from a in _m.Assignment
                                                where a.Id == ta.Assignment.Id
                                                select a).First();
            result.TournamentReference.Value = (from t in _m.Tournament
                                                where t.Id == ta.Tournament.Id
                                                select t).First();

            return result;
        }
コード例 #32
0
ファイル: MoCSModel.Designer.cs プロジェクト: ruudkok/MoCS
 /// <summary>
 /// There are no comments for TournamentAssignment in the schema.
 /// </summary>
 public void AddToTournamentAssignment(TournamentAssignment tournamentAssignment)
 {
     base.AddObject("TournamentAssignment", tournamentAssignment);
 }