コード例 #1
0
ファイル: MixedCourseStorage.cs プロジェクト: supermuk/iudico
 public IEnumerable<Course> GetCourses(User owner)
 {
     using (var db = new CourseManagementDbConext())
     {
         return db.Courses.Where(i => i.Owner == owner.Username && i.Deleted == false);
     }
 }
コード例 #2
0
        public void CalculateSumAndMaxTest()
        {
            IUDICO.Common.Models.User usr = new IUDICO.Common.Models.User()
            {
                Username = "******"
            };
            IUDICO.Common.Models.Theme thm = new IUDICO.Common.Models.Theme()
            {
                Name = "Theme One"
            };
            IUDICO.Common.Models.Shared.Statistics.AttemptResult AR = new IUDICO.Common.Models.Shared.Statistics.AttemptResult(1, usr, thm, IUDICO.Common.Models.Shared.Statistics.CompletionStatus.Completed, IUDICO.Common.Models.Shared.Statistics.AttemptStatus.Completed, IUDICO.Common.Models.Shared.Statistics.SuccessStatus.Passed, DateTime.Now, 0.5f);
            ThemeResult themeRes = new ThemeResult(usr, thm);
            List <IUDICO.Common.Models.Shared.Statistics.AttemptResult> ARL = new List <IUDICO.Common.Models.Shared.Statistics.AttemptResult>();

            ARL.Add(AR);
            themeRes.AttemptResults = ARL;
            themeRes.GetThemeResultScore();

            CurriculumResult target = new CurriculumResult();

            target.ThemeResult.Add(themeRes);

            Curriculum curr = null;

            target.CalculateSumAndMax(usr, curr);

            double?SumExpected = 50.0;
            double?MaxExpected = 100.0;

            Assert.AreEqual(SumExpected, target.Sum);
            Assert.AreEqual(MaxExpected, target.Max);
        }
コード例 #3
0
        public void CalculateSpecializedResultTest()
        {
            IUDICO.Common.Models.User usr = new IUDICO.Common.Models.User() { Username = "******" };
            IUDICO.Common.Models.Theme thm = new IUDICO.Common.Models.Theme() { Name = "Theme One" };
            IUDICO.Common.Models.Shared.Statistics.AttemptResult AR = new IUDICO.Common.Models.Shared.Statistics.AttemptResult(1, usr, thm, IUDICO.Common.Models.Shared.Statistics.CompletionStatus.Completed, IUDICO.Common.Models.Shared.Statistics.AttemptStatus.Completed, IUDICO.Common.Models.Shared.Statistics.SuccessStatus.Passed, DateTime.Now, 0.5f);

            ThemeResult themeRes = new ThemeResult(usr, thm);
            List<AttemptResult> ARL = new List<AttemptResult>();
            ARL.Add(AR);
            themeRes.AttemptResults = ARL;
            themeRes.GetThemeResultScore();

            CurriculumResult currRes = new CurriculumResult();
            currRes.ThemeResult.Add(themeRes);
            Curriculum curr = null;
            currRes.CalculateSumAndMax(usr, curr);

            SpecializedResult target = new SpecializedResult();
            target.CurriculumResult.Add(currRes);
            target.CalculateSpecializedResult(usr);

            double? ExpectedSum = 50.0;
            double? ExpectedMax = 100.0;
            double? ExpectedPercent = 50.0;
            char ExpextedECTS = 'F';

            Assert.AreEqual(ExpectedSum, target.Sum);
            Assert.AreEqual(ExpectedMax, target.Max);
            Assert.AreEqual(ExpectedPercent, target.Percent);
            Assert.AreEqual(ExpextedECTS, target.ECTS);
        }
コード例 #4
0
ファイル: ActivateUser.cs プロジェクト: supermuk/iudico
 public void ActivateUserSuccess()
 {
     User temp = new User { Username = "******", Email = "*****@*****.**", Password = "******" };
     _Tests.MockStorage.Setup(s => s.GetCurrentUser()).Returns(_Tests.Storage.GetUser(u => u.Username == "panza"));
     _Tests.Storage.CreateUser(temp);
     System.Guid gg = _Tests.Storage.GetUser(u => u.Username == "ippe").Id;
     _Tests.Storage.ActivateUser(gg);
     Assert.AreEqual(_Tests.Storage.GetUser(u => u.Username == "ippe").IsApproved, true);
 }
コード例 #5
0
        public void AddUserToGroup(Group group, User user)
        {
            var db = GetDbContext();

            var groupUser = new GroupUser {GroupRef = group.Id, UserRef = user.Id};

            db.GroupUsers.InsertOnSubmit(groupUser);
            db.SubmitChanges();
        }
コード例 #6
0
ファイル: EditUsersAccount.cs プロジェクト: supermuk/iudico
 public void EditUser()
 {
     User temp = new User { Username = "******", Email = "*****@*****.**", Password = "******" };
     User expected = new User { Username = "******", Email = "*****@*****.**", Password = "******", Id = temp.Id , OpenId = "openid" };
     _Tests.MockStorage.Setup(s => s.GetCurrentUser()).Returns(_Tests.Storage.GetUser(u => u.Username == "panza"));
     _Tests.Storage.CreateUser(temp);
     var model = new EditUserModel(expected);
     _Tests.Storage.EditUser(temp.Id, model);
     //Assert.AreEqual(expected, _Tests.Storage.GetUser(u => u.Username == "ipvep"));
 }
コード例 #7
0
ファイル: ChangePassword.cs プロジェクト: supermuk/iudico
 public void ChangePasswordSuccess()
 {
     var model = new ChangePasswordModel {OldPassword = "******", ConfirmPassword = "******", NewPassword = "******"};
     User temp = new User { Username = "******", Email = "*****@*****.**", Password = "******" };
     _Tests.MockStorage.Setup(s => s.GetCurrentUser()).Returns(_Tests.Storage.GetUser(u => u.Username == "panza"));
     _Tests.Storage.CreateUser(temp);
     _Tests.MockStorage.Setup(s => s.GetCurrentUser()).Returns(_Tests.Storage.GetUser(u => u.Username == "ipepp"));
     _Tests.Storage.ChangePassword(model);
     Assert.AreEqual(_Tests.Storage.GetUser(u => u.Username == "ipepp").Password, _Tests.Storage.EncryptPassword("321"));
 }
コード例 #8
0
ファイル: Models.cs プロジェクト: supermuk/iudico
 public DetailsModel(User user)
 {
     Id = user.Id;
     Username = user.Username;
     Name = user.Name;
     OpenId = user.OpenId;
     Email = user.Email;
     Groups = user.Groups;
     Roles = user.Roles;
     UserID = user.UserID;
 }
コード例 #9
0
ファイル: ChangeUsersRole.cs プロジェクト: supermuk/iudico
        public void AddUserToRole()
        {
            User temp = new User { Username = "******", Email = "*****@*****.**", Password = "******" };
            _Tests.MockStorage.Setup(s => s.GetCurrentUser()).Returns(_Tests.Storage.GetUser(u => u.Username == "panza"));
            _Tests.Storage.CreateUser(temp);

            var role = Role.Teacher;
            _Tests.Storage.AddUserToRole(role, temp);
            List<Role> roles = new List<Role>();
            roles.Add(role);
            //Assert.AreEqual(1, _Tests.Storage.GetUser(u => u.Username == "icpe").UserRoles.Count);
        }
コード例 #10
0
ファイル: IndexModel.cs プロジェクト: supermuk/iudico
 public IndexModel(ILmsService iLmsService)
 {
     IEnumerable<Curriculum> allowedCurriculums;
     User teacherUser;
     teacherUser = iLmsService.FindService<IUserService>().GetCurrentUser();
     allowedCurriculums = iLmsService.FindService<ICurriculumService>().GetCurriculumsWithThemesOwnedByUser(teacherUser);
     //
     if (allowedCurriculums != null & allowedCurriculums.Count() != 0)
         _AllowedCurriculums = allowedCurriculums;
     else
         _AllowedCurriculums = null;
     _TeacherUser = teacherUser;
 }
コード例 #11
0
ファイル: UserController.cs プロジェクト: supermuk/iudico
        public ActionResult Create()
        {
            var user = new User
                           {
                               /*RolesList =
                                   _Storage.GetRoles().AsQueryable().Select(
                                       r =>
                                       new SelectListItem
                                           {Text = IUDICO.UserManagement.Localization.getMessage(r.ToString()), Value = ((int) r).ToString(), Selected = false}
                                    )*/
                           };

            return View(user);
        }
コード例 #12
0
ファイル: FakeTestingService.cs プロジェクト: supermuk/iudico
        public IEnumerable<AttemptResult> GetResults(User user, Theme theme)
        {
            var results = new List<AttemptResult>
                              {
                                  new AttemptResult(0, user, theme, CompletionStatus.Unknown, AttemptStatus.Suspended,
                                                    SuccessStatus.Unknown, DateTime.Now, 0.21f),
                                  new AttemptResult(1, user, theme, CompletionStatus.NotAttempted, AttemptStatus.Active,
                                                    SuccessStatus.Unknown, DateTime.Now, null),
                                  new AttemptResult(2, user, theme, CompletionStatus.Completed, AttemptStatus.Completed,
                                                    SuccessStatus.Passed, DateTime.Now, 0.98f),
                                  new AttemptResult(3, user, theme, CompletionStatus.Incomplete, AttemptStatus.Completed,
                                                    SuccessStatus.Failed, DateTime.Now, 0.04f)
                              };

            return results;
        }
コード例 #13
0
ファイル: SpecializedResult.cs プロジェクト: supermuk/iudico
        public void CalculateSpecializedResult(User user)
        {
            _Sum = 0.0;
            _Max = 0.0;
            _Percent = 0.0;
            _User = user;

            foreach (CurriculumResult curr in _CurriculumResult)
            {
                _Sum += curr.Sum;
                _Max += curr.Max;
            }

            _Percent = _Sum / _Max * 100.0;
            _ECTS = Ects(_Percent);
        }
コード例 #14
0
ファイル: ThemeInfoModel.cs プロジェクト: supermuk/iudico
        private ThemeInfoModel() 
        {
            List<AttemptResult> testAttemptList = new List<AttemptResult>();
            List<User> testUserList = new List<User>();
            List<Theme> testThemeList = new List<Theme>();
            float? attemptScore;
            AttemptResult testAttempt;

            User testUser1 = new User();
            testUser1.Name = "user1";
            Theme testTheme1 = new Theme();
            testTheme1.Name = "theme1";
            User testUser2 = new User();
            testUser2.Name = "user2";
            Theme testTheme2 = new Theme();
            testTheme2.Name = "theme2";

            attemptScore = (float?)0.55;
            testAttempt = new AttemptResult(1, testUser1, testTheme1, new CompletionStatus(), new AttemptStatus(), new SuccessStatus(), DateTime.Now, attemptScore);
            testAttemptList.Add(testAttempt);
            
            attemptScore = (float?)0.65;
            testAttempt = new AttemptResult(1, testUser1, testTheme2, new CompletionStatus(), new AttemptStatus(), new SuccessStatus(), null, attemptScore);
            testAttemptList.Add(testAttempt);

            attemptScore = (float?)0.85;
            testAttempt = new AttemptResult(1, testUser2, testTheme1, new CompletionStatus(), new AttemptStatus(), new SuccessStatus(), DateTime.Now, attemptScore);
            testAttemptList.Add(testAttempt);

            attemptScore = (float?)0.95;
            testAttempt = new AttemptResult(1, testUser2, testTheme2, new CompletionStatus(), new AttemptStatus(), new SuccessStatus(), null, attemptScore);
            testAttemptList.Add(testAttempt);

            testUserList.Add(testUser1);
            testThemeList.Add(testTheme1);
            testUserList.Add(testUser2);
            testThemeList.Add(testTheme2);

            this._LastAttempts = testAttemptList;
            this.SelectGroupStudents = testUserList;
            this.SelectCurriculumThemes = testThemeList;
        }
コード例 #15
0
        public void CalculateSpecializedResultTest()
        {
            IUDICO.Common.Models.User usr = new IUDICO.Common.Models.User()
            {
                Username = "******"
            };
            IUDICO.Common.Models.Theme thm = new IUDICO.Common.Models.Theme()
            {
                Name = "Theme One"
            };
            IUDICO.Common.Models.Shared.Statistics.AttemptResult AR = new IUDICO.Common.Models.Shared.Statistics.AttemptResult(1, usr, thm, IUDICO.Common.Models.Shared.Statistics.CompletionStatus.Completed, IUDICO.Common.Models.Shared.Statistics.AttemptStatus.Completed, IUDICO.Common.Models.Shared.Statistics.SuccessStatus.Passed, DateTime.Now, 0.5f);

            ThemeResult          themeRes = new ThemeResult(usr, thm);
            List <AttemptResult> ARL      = new List <AttemptResult>();

            ARL.Add(AR);
            themeRes.AttemptResults = ARL;
            themeRes.GetThemeResultScore();

            CurriculumResult currRes = new CurriculumResult();

            currRes.ThemeResult.Add(themeRes);
            Curriculum curr = null;

            currRes.CalculateSumAndMax(usr, curr);

            SpecializedResult target = new SpecializedResult();

            target.CurriculumResult.Add(currRes);
            target.CalculateSpecializedResult(usr);

            double?ExpectedSum     = 50.0;
            double?ExpectedMax     = 100.0;
            double?ExpectedPercent = 50.0;
            char   ExpextedECTS    = 'F';

            Assert.AreEqual(ExpectedSum, target.Sum);
            Assert.AreEqual(ExpectedMax, target.Max);
            Assert.AreEqual(ExpectedPercent, target.Percent);
            Assert.AreEqual(ExpextedECTS, target.ECTS);
        }
コード例 #16
0
        public MembershipCreateStatus CreateUser(string username, string password, string email, string openId, bool isApproved)
        {
            try
            {
                var user = new User
                {
                    Username = username,
                    Password = password,
                    Email = email,
                    IsApproved = isApproved
                };

                _UserStorage.CreateUser(user);

                return MembershipCreateStatus.Success;
            }
            catch (Exception)
            {
                return MembershipCreateStatus.ProviderError;
            }
        }
コード例 #17
0
        public User GetCurrentUser()
        {
            if (HttpContext.Current.User == null)
            {
                var user = new User {RoleId = (int) Role.None};

                return user;
            }

            var identity = HttpContext.Current.User.Identity;

            if (!identity.IsAuthenticated)
            {
                return null;
            }

            using (var db = new UserManagementDBContext())
            {
                return db.Users.Where(u => u.Username == identity.Name).FirstOrDefault();
            }
        }
コード例 #18
0
        public virtual User GetCurrentUser()
        {
            if (HttpContext.Current == null || HttpContext.Current.User == null)
            {
                var userrole = new UserRole {RoleRef = (int)Role.None};
                var user = new User();

                user.UserRoles.Add(userrole);

                return user;
            }

            var identity = HttpContext.Current.User.Identity;

            if (!identity.IsAuthenticated)
            {
                return null;
            }

            var db = GetDbContext();

            return db.Users.Where(u => u.Username == identity.Name).FirstOrDefault();
        }
コード例 #19
0
ファイル: UserController.cs プロジェクト: supermuk/iudico
        public ActionResult Create(User user)
        {
            if (user.OpenId == null)
            {
                user.OpenId = string.Empty;
            }
            
            if (ModelState.IsValid)
            {
                if (!_Storage.UsernameExists(user.Username))
                {
                    _Storage.CreateUser(user);

                    return RedirectToAction("Index");
                }
                
                ModelState.AddModelError("Username", "User with such username already exists.");
            }

            user.Password = null;
            //user.RolesList = _Storage.GetRoles().AsQueryable().Select(r => new SelectListItem { Text = IUDICO.UserManagement.Localization.getMessage(r.ToString()), Value = ((int)r).ToString(), Selected = false });

            return View(user);
        }
コード例 #20
0
        public void CalculateSumAndMaxTest()
        {
            IUDICO.Common.Models.User usr = new IUDICO.Common.Models.User() { Username = "******" };
            IUDICO.Common.Models.Theme thm = new IUDICO.Common.Models.Theme() { Name = "Theme One" };
            IUDICO.Common.Models.Shared.Statistics.AttemptResult AR = new IUDICO.Common.Models.Shared.Statistics.AttemptResult(1,usr,thm, IUDICO.Common.Models.Shared.Statistics.CompletionStatus.Completed, IUDICO.Common.Models.Shared.Statistics.AttemptStatus.Completed,IUDICO.Common.Models.Shared.Statistics.SuccessStatus.Passed, DateTime.Now, 0.5f);
            ThemeResult themeRes = new ThemeResult(usr, thm);
            List<IUDICO.Common.Models.Shared.Statistics.AttemptResult> ARL = new List<IUDICO.Common.Models.Shared.Statistics.AttemptResult>();
            ARL.Add(AR);
            themeRes.AttemptResults = ARL;
            themeRes.GetThemeResultScore();

            CurriculumResult target = new CurriculumResult();

            target.ThemeResult.Add(themeRes);

            Curriculum curr = null;
            target.CalculateSumAndMax(usr, curr);

            double? SumExpected = 50.0;
            double? MaxExpected = 100.0;

            Assert.AreEqual(SumExpected, target.Sum);
            Assert.AreEqual(MaxExpected, target.Max);
        }
コード例 #21
0
ファイル: ThemeInfoModel.cs プロジェクト: supermuk/iudico
 public double GetStudentResultForTheme(User selectStudent, Theme selectTheme)
 {
     if (_LastAttempts.Count != 0)
     {
         if (_LastAttempts.Single(x => x.User == selectStudent & x.Theme == selectTheme).Score.ToPercents() != null)
         {
             double? result =_LastAttempts.Single(x => x.User == selectStudent & x.Theme == selectTheme).Score.ToPercents();
             if (result.HasValue == true)
                 return Math.Round((double)result,2);
             else
                 return 0;
         }
         else
             return 0;
     }
     else
         return 0;
 }
コード例 #22
0
ファイル: FakeUserService.cs プロジェクト: supermuk/iudico
 public IEnumerable<Group> GetGroupsByUser(User user)
 {
     throw new NotImplementedException();
 }
コード例 #23
0
ファイル: TestingService.cs プロジェクト: supermuk/iudico
 public IEnumerable<AttemptResult> GetResults(User user, Theme theme)
 {
     IEnumerable<AttemptResult> result = MlcProxy.GetResults(user, theme);
     return result;
 }
コード例 #24
0
ファイル: MixedCourseStorage.cs プロジェクト: supermuk/iudico
 public IEnumerable<Course> GetCourses(User owner)
 {
     return GetDbContext().Courses.Where(i => i.Owner == owner.Username && i.Deleted == false);
 }
コード例 #25
0
ファイル: FakeCourseService.cs プロジェクト: supermuk/iudico
 public IEnumerable<Course> GetCourses(User owner)
 {
     return courses.Where(item => item.Owner == owner.Username);
 }
コード例 #26
0
 public IEnumerable<Curriculum> GetCurriculumsWithThemesOwnedByUser(User user)
 {
     IEnumerable<int> courseIds = GetCoursesOwnedByUser(user)
         .Select(item => item.Id)
         .ToList();
     return GetCurriculums()
         .Where(item => GetThemesByCurriculumId(item.Id)
                      .Any(theme => courseIds.Contains(theme.CourseRef)));
 }
コード例 #27
0
ファイル: ThemeInfoModel.cs プロジェクト: supermuk/iudico
 public long GetAttempId(User selectStudent, Theme selectTheme)
 {
     AttemptResult res = _LastAttempts.Find(x => x.User == selectStudent & x.Theme == selectTheme);
     if (res != null)
         return res.AttemptId;
     return -1;
 }
コード例 #28
0
ファイル: ThemeInfoModel.cs プロジェクト: supermuk/iudico
 public bool NoData(User selectStudent, Theme selectTheme)
 {
     AttemptResult res = _LastAttempts.Find(x => x.User == selectStudent & x.Theme == selectTheme);
     if (res != null)
         return false;
     return true;
 }
コード例 #29
0
ファイル: ThemeInfoModel.cs プロジェクト: supermuk/iudico
        public double GetStudentResultForAllThemesInSelectedCurriculum(User selectStudent)
        {
            double result = 0;

            if (_LastAttempts.Count != 0)
            {
                foreach (Theme theme in SelectCurriculumThemes)
                {                    
                    if (_LastAttempts.Count(x => x.User == selectStudent & x.Theme == theme) != 0)
                    {
                        double? value = _LastAttempts.First(x => x.User == selectStudent & x.Theme == theme).Score.ToPercents();
                        if (value.HasValue == true)
                            result += Math.Round((double)value, 2);
                    }
                }
            }

            return result;
        }
コード例 #30
0
 public IEnumerable<Group> GetGroupsByUser(User user)
 {
     return _LmsService.FindService<IUserService>().GetGroupsByUser(user);
 }
コード例 #31
0
        public IEnumerable<ThemeDescription> GetThemesAvailableForUser(User user)
        {
            IEnumerable<Group> groups = GetGroupsByUser(user).ToList(); //get groups for user
            DateTime dateTime = DateTime.Now;
            List<ThemeDescription> result = new List<ThemeDescription>();

            var curriculumAssignments = groups.SelectMany(group => GetCurriculumAssignmentsByGroupId(group.Id)) //get curriculum assignments
                   .Where(curriculumAssignment => GetCurriculumAssignmentTimelines(curriculumAssignment.Id) //select those curriculum assignments,
                   .Any(timeline => dateTime.IsIn(timeline))); //for which specified date is in any of the curriculum assignment timelines

            foreach (CurriculumAssignment curriculumAssignment in curriculumAssignments)
            {
                //get stages
                foreach (Stage stage in GetStages(curriculumAssignment.CurriculumRef))
                {
                    var stageTimelines = GetStageTimelines(stage.Id, curriculumAssignment.Id)
                                        .ToList();
                    //select those stages, which doesn't have stage timelines or for which specified date is in any of the stage timelines
                    if (stageTimelines.Count() == 0 || stageTimelines.Any(timeline => dateTime.IsIn(timeline)))
                    {
                        //get themes
                        //result.AddRange(GetThemesByStageId(stage.Id));
                        foreach (Theme theme in GetThemesByStageId(stage.Id))
                        {
                            result.Add(new ThemeDescription()
                            {
                                Theme = theme,
                                Stage = stage,
                                Curriculum = stage.Curriculum,
                                Timelines = stageTimelines.Count() == 0 ?
                                    GetCurriculumAssignmentTimelines(curriculumAssignment.Id)
                                        .Where(timeline => dateTime.IsIn(timeline)).ToList() :
                                    stageTimelines
                                        .Where(timeline => dateTime.IsIn(timeline)).ToList()
                            });
                        }
                    }
                };
            }

            return result;
        }
コード例 #32
0
ファイル: StatisticsProxy.cs プロジェクト: supermuk/iudico
 /// <summary>
 /// Gets AttemptResult (result) by user, theme using method GetResults(User user, Theme theme) from IUserService .
 /// </summary>
 /// <param name="user">IUDICO.Common.Models.User Selected user .</param>
 /// <param name="theme">IUDICO.Common.Models.Theme Selected theme .</param>
 /// <returns>IEnumerable<AttemptResult> User theme results .</returns>
 public IEnumerable<AttemptResult> GetResults(User user, Theme theme)
 {
     return _LmsService.FindService<ITestingService>().GetResults(user, theme);
 }