/// <summary> /// Sets the IsActive property to true for the specified user /// </summary> /// <param name="user"></param> /// <returns></returns> public static ReturnValue ActivateUser(User user) { var retVal = new ReturnValue(); if (user == null) { retVal.ErrorMessages.Add("Invalid User"); return(retVal); } using (var db = new CmsModelContainer()) { db.Users.Attach(user); user.IsActive = true; db.SaveChanges(); retVal.Success = true; } if (ToggleEnrollmentHandleAdded == false) { ToggleEnrollmentHandleAdded = true; UserDeleted += new UserHandler(ToggleAssociatedEnrollmentRecord); } if (UserDeleted != null) { UserDeleted(user.Id, true); } return(retVal); }
public static ReturnValue ToggleAssociatedEnrollmentRecord(Guid id, bool value) { var retVal = new ReturnValue(); using (var db = new CmsModelContainer()) { try { var query = from record in db.Enrollments where record.Students.Id == id select record; foreach (var record in query) { record.IsActive = value; } db.SaveChanges(); retVal.Success = true; } catch (Exception ex) { retVal.Success = false; retVal.ErrorMessages.Add(ex.ToString()); } return(retVal); } }
/// <summary> /// Create the survey questions & response options that will be used for all course surveys. This will be called by Global.asax in CMS_App. /// </summary> public static void CreateSurvey() { using (var db = new CmsModelContainer()) { if (!db.Questions.Any()) { // create two questions var question1 = new Question { Id = Guid.NewGuid(), Text = "Please rate this course", Number = 1, ResponseOptions = CreateScaleResponseOptions() }; var question2 = new Question { Id = Guid.NewGuid(), Text = "Please rate the instructor(s)", Number = 2, ResponseOptions = CreateScaleResponseOptions() }; db.Questions.Add(question1); db.Questions.Add(question2); } db.SaveChanges(); } }
/// <summary> /// Deletes specified user from database; use only to remove fake users added during unit testing. /// </summary> public static void DeleteUser(User user) { if (user == null) { return; } using (var db = new CmsModelContainer()) { db.Users.Attach(user); db.Users.Remove(user); db.SaveChanges(); } }
public void TestUserGetMajors() { ReturnValue retValCreate = BizLayer.ManagerClasses.UserManager.CreateUser( "unit_test_first_name", "unit_test_last_name", "*****@*****.**", true, RoleType.student); User user; BizLayer.ManagerClasses.UserManager.GetUserByEmailAddress("*****@*****.**", out user); var majors = new List <Major>(); majors.Add(new Major { Id = Guid.NewGuid(), Name = MajorType.Chemistry }); majors.Add(new Major { Id = Guid.NewGuid(), Name = MajorType.History }); ReturnValue retValUpdate = BizLayer.ManagerClasses.UserManager.UpdateUser(user, majors); Assert.AreEqual(true, retValUpdate.Success); var majors2 = new List <Major>(); majors2.AddRange(BizLayer.ManagerClasses.UserManager.GetMajorsByStudentId(user.Id)); foreach (var major in majors2) { Assert.IsTrue(major.Name == MajorType.Chemistry || major.Name == MajorType.History); } // remove user after test User userToDelete; BizLayer.ManagerClasses.UserManager.GetUserByEmailAddress("*****@*****.**", out userToDelete); using (var db = new CmsModelContainer()) { db.Users.Attach(userToDelete); foreach (var major in majors) { userToDelete.Majors.Remove(major); } db.SaveChanges(); } BizLayer.ManagerClasses.UserManager.DeleteUser(userToDelete); }
/// <summary> /// Updates the database entry corresponding to the user argument with the properties of the user argument /// </summary> /// <param name="user"></param> /// <returns></returns> public static ReturnValue UpdateUser(User user, IEnumerable <Major> majors) { var returnValue = new ReturnValue(); if (user == null) { returnValue.ErrorMessages.Add("Invalid User"); return(returnValue); } using (var db = new CmsModelContainer()) { try { var originalUser = db.Users.SingleOrDefault(u => u.Id == user.Id); if (originalUser == null) { returnValue.ErrorMessages.Add("Invalid User"); return(returnValue); } originalUser.DateUpdated = DateTime.Now; originalUser.IsActive = user.IsActive; originalUser.Role = user.Role; originalUser.FirstName = HttpUtility.HtmlEncode(user.FirstName); originalUser.LastName = HttpUtility.HtmlEncode(user.LastName); originalUser.Email = HttpUtility.HtmlEncode(user.Email); originalUser.Majors.Clear(); foreach (var major in majors) { originalUser.Majors.Add(major); } db.SaveChanges(); returnValue.Success = true; } catch (Exception ex) { returnValue.Success = false; returnValue.ErrorMessages.Add(ex.ToString()); } } return(returnValue); }
/// <summary> /// Creates a new instance of User and save it in the database /// </summary> /// <param name="firstName"></param> /// <param name="lastName"></param> /// <param name="emailAddress"></param> /// <param name="isActive"></param> /// <param name="role"></param> /// <returns></returns> public static ReturnValue CreateUser(String firstName, String lastName, String emailAddress, bool isActive, RoleType role) { var retVal = new ReturnValue(); using (var db = new CmsModelContainer()) { try { var user = new User { Id = Guid.NewGuid(), DateAdded = DateTime.Now, DateUpdated = DateTime.Now, IsActive = isActive, Role = role, FirstName = String.IsNullOrWhiteSpace(firstName) ? String.Empty : HttpUtility.HtmlEncode(firstName), LastName = String.IsNullOrWhiteSpace(lastName) ? String.Empty : HttpUtility.HtmlEncode(lastName), Email = String.IsNullOrWhiteSpace(emailAddress) ? String.Empty : HttpUtility.HtmlEncode(emailAddress) }; db.Users.Add(user); db.SaveChanges(); retVal.Success = true; } catch (Exception ex) { retVal.Success = false; retVal.ErrorMessages.Add(ex.ToString()); } } return(retVal); }
/// <summary> /// Create a new instance of ResponseEvent and save it in the database /// </summary> /// <param name="enrollmentId"></param> /// <param name="responseOptionId"></param> /// <returns></returns> public static ReturnValue CreateResponseEvent(Guid enrollmentId, Guid responseOptionId) { var retVal = new ReturnValue(); using (var db = new CmsModelContainer()) { try { // get question associated with specified responseOptionId var question = GetQuestionByResponseOptionId(responseOptionId); // get all response options associated with that question var responseOptions = GetResponseOptionsByQuestionId(question.Id); var responseOptionIds = new List <Guid>(); foreach (var responseOption in responseOptions) { responseOptionIds.Add(responseOption.Id); } // check if a response event exists for the specified enrollment/question combo var existingResponseEvent = db.ResponseEvents.FirstOrDefault(e => e.EnrollmentId == enrollmentId && responseOptionIds.Contains(e.ResponseOptionId)); // if a response does already exist for the specified enrollment/question combo, // then delete it before adding a new response event for that enrollment/question, // which may specify a different response option than the existing response event if (existingResponseEvent != null && existingResponseEvent.Id != Guid.Empty) { db.ResponseEvents.Remove(existingResponseEvent); } // now create a new response event for the specified enrollment & response option var responseEvent = new ResponseEvent { Id = Guid.NewGuid(), EnrollmentId = enrollmentId, ResponseOptionId = responseOptionId, }; // add the new response event to the relevant collections var enrollment = db.Enrollments.FirstOrDefault(e => e.Id == enrollmentId); if (enrollment != null) { enrollment.ResponseEvents.Add(responseEvent); } var option = db.ResponseOptions.FirstOrDefault(o => o.Id == responseOptionId); if (option != null) { option.ResponseEvents.Add(responseEvent); } db.SaveChanges(); retVal.Success = true; } catch (Exception ex) { retVal.Success = false; retVal.ErrorMessages.Add(ex.ToString()); } } return(retVal); }