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; } } }
/// <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); }
/// <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(); } }
/// <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(); } } }
/// <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 }); }