public static string FormatEmail(string text, Course course, Unit unit, Task task, User fromUser, User toUser, UserTaskData userTaskData = null, InteractionPost interactionPost = null, ForumPost forumPost = null, UserPost userPost = null, UserPostComment userPostComment = null, DiscussionGroup discussionGroup = null) { if (course != null) { text = text.Replace("{course-code}", course.CourseCode + course.Section); text = text.Replace("{course-name}", course.Name); } if (fromUser != null) { text = text.Replace("{fromuser-secureformattedname}", fromUser.SecureFormattedName); text = text.Replace("{fromuser-secureshortname}", fromUser.SecureShortName); } if (toUser != null) { text = text.Replace("{touser-secureformattedname}", toUser.SecureFormattedName); text = text.Replace("{touser-secureshortname}", toUser.SecureShortName); } if (task != null) { text = text.Replace("{task-name}", task.Name); } if (userTaskData != null) { text = text.Replace("{usertaskdata-numericgrade}", userTaskData.NumericGrade.HasValue ? userTaskData.NumericGrade.Value.ToString() : "(none)"); text = text.Replace("{usertaskdata-studentcomments}", userTaskData.StudentComments); text = text.Replace("{usertaskdata-gradercomments}", userTaskData.GraderComments); text = text.Replace("{usertaskdata-gradedfile-url}", userTaskData.GradedFile != null ? "https://online.dts.edu" + userTaskData.GradedFile.FileUrl : ""); text = text.Replace("{usertaskdata-studentfile-url}", userTaskData.StudentFile != null ? "https://online.dts.edu" + userTaskData.StudentFile.FileUrl : ""); } if (interactionPost != null) { text = text.Replace("{interactionpost-postcontent}", interactionPost.PostContent); text = text.Replace("{interactionpost-posturl}", "https://online.dts.edu" + interactionPost.PostUrl); } // NOTE: using unformated text for now?! if (userPost != null) { text = text.Replace("{userpost-text}", userPost.Text); text = text.Replace("{userpost-posturl}", "https://online.dts.edu" + userPost.PostUrl); } if (discussionGroup != null) { text = text.Replace("{discussiongroup-name}", discussionGroup.Name); text = text.Replace("{discussiongroup-groupurl}", "https://online.dts.edu" + discussionGroup.GroupUrl); } if (userPostComment != null) { text = text.Replace("{postcomment-text}", userPostComment.Text); } return text; }
public static StudentFile SaveStudentFile(int userID, UserTaskData userData, HttpPostedFileBase file) { DidacheDb db = new DidacheDb(); StudentFile studentFile = null; if (file.ContentLength > 0) { // setup data studentFile = new StudentFile(); studentFile.UserID = userID; studentFile.UploadedDate = DateTime.Now; studentFile.UniqueID = Guid.NewGuid(); studentFile.ContentType = file.ContentType; studentFile.Length = file.ContentLength; // setup physical file string extension = Path.GetExtension(file.FileName); string filenameWithoutExtension = Path.GetFileNameWithoutExtension(file.FileName); studentFile.Filename = Path.GetFileName(file.FileName); string savePath = Path.Combine(Settings.StudentFilesLocation, studentFile.UniqueID.ToString() + extension); // check file type /* if (!String.IsNullOrWhiteSpace(userData.Task.FileTypesAllowed)) { } */ file.SaveAs(savePath); // save file info to DB db.StudentFiles.Add(studentFile); db.SaveChanges(); } return studentFile; }
public static List<UserTaskData> GetUserTaskDataInUnit(int unitID, int userID, bool createFakeData) { DidacheDb db = new DidacheDb(); List<UserTaskData> userTasks = null; if (createFakeData) { // for graders List<Task> tasks = db.Tasks.Where(t => t.UnitID == unitID).OrderBy(t => t.SortOrder).ToList(); userTasks = new List<UserTaskData>(); foreach (Task task in tasks) { UserTaskData utd = new UserTaskData() { TaskID = task.TaskID, CourseID = task.CourseID, UnitID = task.UnitID, TaskCompletionStatus = TaskCompletionStatus.NotStarted, Task = task }; //utd.Task = task; userTasks.Add(utd); } } else { userTasks = db.UserTasks .Include("Task") .Where(d => d.UserID == userID && d.Task.UnitID == unitID) .OrderBy(d => d.Task.SortOrder) .ToList(); } return userTasks; }
public ActionResult UpdateTask(Task model) { if (model.TaskID > 0) { // EDIT MODE try { model = db.Tasks.Find(model.TaskID); UpdateModel(model); db.SaveChanges(); // reciprocate if (model.RelatedTaskID > 0) { Task relatedTask = db.Tasks.Find(model.RelatedTaskID); if (relatedTask != null) { relatedTask.RelatedTaskID = model.TaskID; db.SaveChanges(); } } return Json(new { success = true, task = serializer.Serialize(model) }); } catch (Exception ex) { Response.StatusCode = 500; return Json(new { success = false, task = serializer.Serialize(model), message = "Update error", errors = GetErrors() }); } } else { // ADD MODE if (ModelState.IsValid) { db.Tasks.Add(model); db.SaveChanges(); // reciprocate if (model.RelatedTaskID > 0) { Task relatedTask = db.Tasks.Find(model.RelatedTaskID); if (relatedTask != null) { relatedTask.RelatedTaskID = model.TaskID; db.SaveChanges(); } } // create user tasks List<CourseUser> users = db.CourseUsers.Where(cu => cu.CourseID == model.CourseID && cu.RoleID == (int) CourseUserRole.Student).ToList(); foreach (CourseUser user in users) { UserTaskData utd = new UserTaskData() { TaskID = model.TaskID, CourseID = model.CourseID, UnitID = model.UnitID, GraderComments = "", GraderSubmitDate = null, GraderUserID = 0, GradeStatus = 0, LetterGrade = "", NumericGrade = null, StudentComments = "", StudentSubmitDate = null, TaskCompletionStatus = TaskCompletionStatus.NotStarted, TaskData = "", GraderFileID = 0, PostID = 0, StudentFileID = 0, UserID = user.UserID }; db.UserTasks.Add(utd); } db.SaveChanges(); return Json(new { success = true, task = serializer.Serialize(model) }); } else { Response.StatusCode = 500; return Json(new { success = false, task = serializer.Serialize(model), message = "Add error", errors = GetErrors() }); } } }
/// <summary> /// /// </summary> /// <param name="courseID"></param> /// <param name="userID"></param> /// <param name="groupID"></param> /// <param name="userRole"></param> /// <returns>Whether or not the user was added (false = just updated)</returns> public static bool AddUserToCourse(int courseID, int userID, int groupID, CourseUserRole userRole) { DidacheDb db = new DidacheDb(); CourseUser courseUser = db.CourseUsers.SingleOrDefault(cu => cu.UserID == userID && cu.CourseID == courseID && cu.RoleID == (int) userRole); if (courseUser != null) { // update the group if (groupID > 0) { courseUser.GroupID = groupID; db.SaveChanges(); } return false; } else { courseUser = new CourseUser() { UserID = userID, CourseID = courseID, RoleID = (int) userRole, GroupID = groupID }; db.CourseUsers.Add(courseUser); if (userRole == CourseUserRole.Student) { // check for assignments bool hasTasks = db.UserTasks.Count(ut => ut.UserID == userID && ut.Task.CourseID == courseID) > 0; if (!hasTasks) { // create assignments List<Task> tasks = db.Tasks.Where(t => t.CourseID == courseID).ToList(); foreach (Task task in tasks) { UserTaskData utd = new UserTaskData() { TaskID = task.TaskID, CourseID = task.CourseID, UnitID = task.UnitID, GraderComments = "", GraderSubmitDate = null, GraderUserID = 0, GradeStatus = 0, LetterGrade = "", NumericGrade = null, StudentComments = "", StudentSubmitDate = null, TaskCompletionStatus = TaskCompletionStatus.NotStarted, TaskData = "", GraderFileID = 0, PostID = 0, StudentFileID = 0, UserID = userID }; db.UserTasks.Add(utd); } } } db.SaveChanges(); return true; } }