コード例 #1
0
ファイル: UserManager.cs プロジェクト: charlesdrews/cms-app
        /// <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);
        }
コード例 #2
0
ファイル: UserManager.cs プロジェクト: charlesdrews/cms-app
        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);
            }
        }
コード例 #3
0
ファイル: SurveyManager.cs プロジェクト: charlesdrews/cms-app
        /// <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();
            }
        }
コード例 #4
0
ファイル: UserManager.cs プロジェクト: charlesdrews/cms-app
        /// <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();
            }
        }
コード例 #5
0
        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);
        }
コード例 #6
0
ファイル: UserManager.cs プロジェクト: charlesdrews/cms-app
        /// <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);
        }
コード例 #7
0
ファイル: UserManager.cs プロジェクト: charlesdrews/cms-app
        /// <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);
        }
コード例 #8
0
ファイル: SurveyManager.cs プロジェクト: charlesdrews/cms-app
        /// <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);
        }