private void FixupLevelProject(LevelProject previousValue)
     {
         if (previousValue != null && previousValue.LevelProjectResults.Contains(this))
         {
             previousValue.LevelProjectResults.Remove(this);
         }
 
         if (LevelProject != null)
         {
             if (!LevelProject.LevelProjectResults.Contains(this))
             {
                 LevelProject.LevelProjectResults.Add(this);
             }
             if (LevelProjectId != LevelProject.LevelProjectId)
             {
                 LevelProjectId = LevelProject.LevelProjectId;
             }
         }
     }
Beispiel #2
0
        /// <summary>
        /// Adds a levelproject instance to a level
        /// </summary>
        /// <param name="levelproject"></param>
        /// <param name="courseId"></param>
        public void AddLevelProjectToCourseAndLevel(LevelProject levelproject, int courseId)
        {
            if (levelproject != null && courseId > 0)
            {
                var level = GameSchoolEntities.Levels.FirstOrDefault(l => l.LevelId == levelproject.LevelId && l.CourseId == courseId);

                if (level != null)
                {
                    level.LevelProjects.Add(levelproject);

                    var allUsersInThisCourse =
                        GameSchoolEntities.UserInfoes.SelectMany(s => s.Courses.Where(d => d.CourseId == courseId)).
                            SelectMany(x => x.UserInfoes);
                    foreach (var user in allUsersInThisCourse.Where(s => s.UserTypeId == 1).Distinct())
                    {
                        ExternalNotificationContainer.CreateNotification(string.Format("Nýtt verkefni er komið í áfangann {0} með nafninu \"{1}\"",
                            levelproject.Level.Course.Name, levelproject.Name), string.Format("/Project/Index/{0}", levelproject.Level.CourseId), user.UserInfoId);
                    }
                }

                Save();
            }
        }
        public void GetLevelProjectByUserIdTest_UserInfoCourseLevelLevelProject_CollectionOfLevelProjects()
        {
            var userInfoId = 7;

            var userData = new FakeObjectSet<UserInfo>();
            var courseData = new FakeObjectSet<Course>();
            var levelProjectData = new FakeObjectSet<LevelProject>();
            var levelData = new FakeObjectSet<Level>();

            LevelProject levelProject1 = new LevelProject { Stop = DateTime.Now.AddDays(7), Start = DateTime.Now, Name = "Verkefni", LevelProjectId = 1, ContentID = Guid.NewGuid(), Description = "Lýsing", GradePercentageValue = 5, LevelId = 1 };
            LevelProject levelProject2 = new LevelProject { Stop = DateTime.Now.AddDays(7), Start = DateTime.Now, Name = "Verkefni2", LevelProjectId = 2, ContentID = Guid.NewGuid(), Description = "Lýsing2", GradePercentageValue = 1, LevelId = 1 };
            UserInfo user1 = new UserInfo { Fullname = "Davíð Einarsson", Email = "*****@*****.**", StatusId = 1, Username = "******", UserInfoId = userInfoId, Password = "******" };
            Course course = new Course { CourseId = 1, Name = "Vefforritun I", CreateDateTime = DateTime.Now, Identifier = "VEFF", Start = DateTime.Now, Stop = DateTime.Now.AddDays(28), DepartmentId = 1, CreditAmount = 6, Description = "Lýsing á veff" };
            Level lvl = new Level { CourseId = 1, CreateDateTime = DateTime.Now, LevelId = 1, Name = "Level", Start = DateTime.Now, Stop = DateTime.Now.AddDays(7), OrderNum = 5 };

            course.Levels.Add(lvl);
            user1.Courses.Add(course);
            lvl.LevelProjects.Add(levelProject1);
            lvl.LevelProjects.Add(levelProject2);

            userData.AddObject(user1);
            courseData.AddObject(course);
            levelProjectData.AddObject(levelProject1);
            levelProjectData.AddObject(levelProject2);
            levelData.AddObject(lvl);

            _mockRepository.Expect(x => x.UserInfoes).Return(userData);
            _mockRepository.Expect(x => x.Courses).Return(courseData);
            _mockRepository.Expect(x => x.LevelProjects).Return(levelProjectData);
            _mockRepository.Expect(x => x.Levels).Return(levelData);

            var query = _levelService.GetLevelProjectsByUserId(userInfoId);

            var expectedUser = query.SelectMany(x => x.Level.Course.UserInfoes).FirstOrDefault();
            var expectedFirstLevelProject = query.Where(s => s.LevelProjectId == 1).FirstOrDefault();
            var expectedSecondLevelProject = query.Where(s => s.LevelProjectId == 2).FirstOrDefault();
            var expectedLevel = query.Where(x => x.Level.LevelId == 1).Select(x => x.Level).FirstOrDefault();
            var expectedCourse =
                query.Where(x => x.Level.Course.CourseId == 1).Select(x => x.Level.Course).FirstOrDefault();

            Assert.AreEqual(expectedCourse.Description, course.Description);
            Assert.AreEqual(expectedLevel.Name,lvl.Name);
            Assert.AreEqual(expectedSecondLevelProject.Name, levelProject2.Name);
            Assert.AreEqual(expectedFirstLevelProject.Name,levelProject1.Name);
            Assert.AreEqual(expectedUser.Fullname,user1.Fullname);
            Assert.AreEqual(expectedUser.Fullname, user1.Fullname);
            Assert.AreEqual(expectedUser.Fullname, user1.Fullname);
            Assert.AreEqual(expectedUser.Fullname, user1.Fullname);

            
        }
Beispiel #4
0
        /// <summary>
        /// Updates a levelproject instance
        /// </summary>
        /// <param name="levelProject">Levelproject object</param>
        public void UpdateLevelProject(LevelProject levelProject)
        {
            if (levelProject != null)
            {
                var levelProjToUpdate =
                    GameSchoolEntities.LevelProjects.Where(s => s.LevelProjectId == levelProject.LevelProjectId).
                        FirstOrDefault();

                levelProjToUpdate.ContentID = levelProject.ContentID;
                levelProjToUpdate.Description = levelProject.Description;
                levelProjToUpdate.GradePercentageValue = levelProject.GradePercentageValue;
                levelProjToUpdate.Name = levelProject.Name;
                levelProjToUpdate.Start = levelProject.Start;
                levelProjToUpdate.Stop = levelProject.Stop;
                levelProjToUpdate.UserFeedback = levelProject.UserFeedback;
                levelProjToUpdate.Filename = levelProject.Filename;
                Save();
            }
        }
Beispiel #5
0
        /// <summary>
        /// Updates a levelproject from levelrpojectresult
        /// </summary>
        /// <param name="levelProject">Integer value of levelproject</param>
        public void UpdateLevelProjectFromResult(LevelProject levelProject, int userInfoId)
        {
            if (levelProject != null)
            {
                if (!(levelProject.Stop > DateTime.Now))
                {
                    var levelProjToUpdate = GetLevelProject(levelProject.LevelProjectId);
                    levelProjToUpdate.ContentID = levelProject.ContentID;
                    levelProjToUpdate.UserFeedback = levelProject.UserFeedback;
                    levelProjToUpdate.LevelProjectResults.Add(levelProject.LevelProjectResults.ElementAtOrDefault(0));


                    int points = 25;

                    var query = GameSchoolEntities.UserInfoes.Where(s => s.UserInfoId == userInfoId).FirstOrDefault();
                    if (query != null) // sernda notification á kennara
                    {
                        var userInCourse =
                            query.Username;
                        var teacher =
                            GameSchoolEntities.Courses.SelectMany(
                                x => x.UserInfoes.Where(d => d.UserInfoId != userInfoId && d.UserTypeId == 2)).
                                FirstOrDefault();
                        ExternalNotificationContainer.CreateNotification(
                            string.Format("Nemandi {0} hefur skilað verkefni {1} í áfanga {2}",
                                          userInCourse, levelProjToUpdate.Name, levelProjToUpdate.Level.Course.Name),
                            string.Format("/Project/Index/{0}", levelProjToUpdate.Level.CourseId),
                            teacher.UserInfoId);
                    }

                    // create notification
                    ExternalNotificationContainer.CreateNotification(string.Format("Þú hefur fengið {0} stig fyrir að skila verkefni \"{1}\"",
                        points, levelProjToUpdate.Name), string.Format("/Project/Index/{0}", levelProjToUpdate.Level.CourseId), userInfoId);
                    // Add points to user
                    ExternalPointContainer.AddPointsToLevel(userInfoId, levelProjToUpdate.LevelId, points,
                                                            string.Format("Þú hefur fengið {0} stig fyrir verkefnið \"{1}\".",
                                                                          points, levelProjToUpdate.Name));

                    Save();
                }
            }
        }
Beispiel #6
0
 /// <summary>
 /// Creates a levelproject instance
 /// </summary>
 /// <param name="levelProject">LEvelproject object</param>
 public void CreateLevelProject(LevelProject levelProject)
 {
     if (levelProject != null)
     {
         GameSchoolEntities.LevelProjects.AddObject(levelProject);
         Save();
     }
 }
        public ActionResult Edit(LevelProject levelProject, int? id)
        {
            ViewBag.GradePercentageValue = GetPercentageValue();
            var material = LevelService.GetLevelProject(levelProject.LevelProjectId);
            var courseId = material.Level.CourseId;
            if (ModelState.IsValid)
            {
                if (TryUpdateModel(levelProject))
                {
                    if (levelProject.File != null)
                    {
                        foreach (var file in levelProject.File)
                        {
                            if (file != null)
                            {
                                Guid contentId = Guid.NewGuid();
                                var path = Path.Combine(Server.MapPath("~/Upload"), contentId.ToString());
                                ViewBag.ContentId = contentId;
                                file.SaveAs(path);
                                levelProject.ContentID = contentId;
                                levelProject.Filename = file.FileName;
                            }
                        }
                    }

                    ViewBag.CourseName = CourseService.GetCourse(courseId).Name;
                    ViewBag.Courseid = CourseService.GetCourse(courseId).CourseId;
                    ViewBag.CourseId = CourseService.GetCourse(courseId).CourseId;
                    ViewBag.LevelCount = GetLevelCounts(courseId);
                    ViewBag.SuccessMessage = "Verkefni hefur verið uppfært";
                    ViewBag.LevelId = new SelectList(LevelService.GetLevels(), "LevelId", "Name", levelProject.LevelId);

                    LevelService.UpdateLevelProject(levelProject);
                    return View(levelProject);
                }
                else
                {
                    ViewBag.LevelId = new SelectList(LevelService.GetLevels(), "LevelId", "Name", levelProject.LevelId);
                    ViewBag.ErrorMessage = "Gat ekki uppfært kennslugagn! Lagfærðu villur og reyndur aftur.";
                    ViewBag.LevelCount = GetLevelCounts(courseId);
                    ViewBag.CourseName = CourseService.GetCourse(courseId).Name;
                    ViewBag.Courseid = CourseService.GetCourse(courseId).CourseId;
                    ViewBag.CourseId = CourseService.GetCourse(courseId).CourseId;
                    if (id.HasValue)
                    {
                        return View(LevelService.GetLevelProject(id.Value));
                    }
                }
            }
            ViewBag.LevelCount = GetLevelCounts(material.Level.CourseId);
            ViewBag.LevelProjectId = levelProject.LevelProjectId;
            ViewBag.ContentTypes = LevelService.GetContentTypes();
            return View();
        }
        public ActionResult Create(int? id, LevelProject levelproject)
        {
            ViewBag.Title = "Búa til nýtt verkefni";

            if (id.HasValue && id.Value > 0)
            {
                var course = CourseService.GetCourse(id.Value);
                ViewBag.CourseId = course.CourseId;

                foreach (var file in levelproject.File)
                {
                    if (file != null)
                    {
                        Guid contentId = Guid.NewGuid();
                        var path = Path.Combine(Server.MapPath("~/Upload"), contentId.ToString());
                        ViewBag.ContentId = contentId;
                        file.SaveAs(path);
                        levelproject.ContentID = contentId;
                        levelproject.Filename = file.FileName;   
                    }
                }

                ViewBag.LevelCount = GetLevelCounts(id.Value);
                ViewBag.CourseId = id.Value;
                ViewBag.GradePercentageValue = GetPercentageValue();

                LevelService.AddLevelProjectToCourseAndLevel(levelproject, id.Value);
                return RedirectToAction("Index", "Project", new {id = id.Value});
            }
            return RedirectToAction("Index");
        }
 private LevelProjectResult CreateLevelProjectResult(LevelProject levelProject, int id, Guid contentId, string filename)
 {
     var result = new LevelProjectResult
                      {
                          CreateDateTime = DateTime.Now,
                          LevelProjectId = levelProject.LevelProjectId,
                          UserInfoId = id,
                          UserFeedback = levelProject.UserFeedback,
                          ContentID = contentId,
                          Filename = filename,
                          GradeDate = DateTime.Now // fæ annars datetime exception
                      };
     return result;
 }
        public ActionResult ReturnProject(LevelProject levelProject)
        {
            var user = MembershipHelper.GetUser().UserInfoId;

            Guid contentId = Guid.NewGuid();
            //if (levelProject.ContentID != null)
            //{
                foreach (var file in levelProject.File)
                {
                    if (file != null)
                    {
                        var path = Path.Combine(Server.MapPath("~/Upload"), contentId.ToString());
                        ViewBag.ContentId = contentId;
                        file.SaveAs(path);
                        ViewBag.Filename = file.FileName;
                    }
                }
            //}

            levelProject.LevelProjectResults.Add(CreateLevelProjectResult(levelProject, user, contentId, ViewBag.Filename));
            LevelService.UpdateLevelProjectFromResult(levelProject, user);

            return RedirectToAction("Get", new { id = levelProject.LevelProjectId });
        }