Exemple #1
0
        public DummyApplicationDbContext()
        {
            //USERS
            //Gewone user
            Student = new ItlabUser
            {
                Firstname  = "Brad",
                Lastname   = "Pitt",
                Username   = "******",
                UserStatus = UserStatus.ACTIVE,
                UserType   = UserType.USERITLAB
            };
            Hoofdverantwoordelijke = new ItlabUser();
            Verantwoordelijke      = new ItlabUser();

            Users = new[] { Student };

            //SESSIONS
            //Session1
            Session1 = new Session
            {
                Title       = "Coderen voor blinden",
                Id          = 1,
                Eventdate   = new DateTime(2020, 01, 01),
                Maxattendee = 100
            };

            Sessions = new[] { Session1 };

            //FEEDBACK
        }
Exemple #2
0
        public SessionTest()
        {
            _dummyClassroom = new Classroom()
            {
                Classid = "classroom", Campus = Campus.GENT, Maxseats = 50, Roomcategory = RoomCategory.ITLAB
            };
            _dummyUser = new ItlabUser()
            {
                Firstname = "firstname", Lastname = "lastname", Username = "******", UserType = UserType.RESPONSIBLE, UserStatus = UserStatus.ACTIVE, Password = "******"
            };
            _dummyUserBlocked = new ItlabUser()
            {
                Firstname = "firstname", Lastname = "lastname", Username = "******", UserType = UserType.RESPONSIBLE, UserStatus = UserStatus.BLOCKED, Password = "******"
            };
            _dummyUserNonactive = new ItlabUser()
            {
                Firstname = "firstname", Lastname = "lastname", Username = "******", UserType = UserType.RESPONSIBLE, UserStatus = UserStatus.NONACTIVE, Password = "******"
            };

            TimeSpan ts        = new TimeSpan(15, 50, 0);
            TimeSpan startTime = ts;
            TimeSpan endTime   = ts.Add(new TimeSpan(0, 50, 0));

            _session = new Session()
            {
                Id = 1, Endhour = endTime, Starthour = startTime, Maxattendee = 10, ClassroomClass = _dummyClassroom
            };
        }
        public IActionResult Index(int id, FeedbackViewModel feedbackViewModel)
        {
            //ItlabUser loggedInUser = IUserRepository.LoggedInUser;
            ItlabUser loggedInUser = _usersRepository.GetLoggedInUser();

            Session session = _sessionRepository.GetById(id);

            if (session == null)
            {
                return(NotFound());
            }

            try
            {
                if (!session.hasUserAttended(loggedInUser.Username))
                {
                    throw new InvalidOperationException();
                }

                if (!session.Stateenum.Equals(State.FINISHED))
                {
                    throw new InvalidOperationException();
                }

                session.AddFeedback(loggedInUser, feedbackViewModel.Feedback);
                _sessionRepository.SaveChanges();

                TempData["message"] = $"Bedankt voor jouw feedback!";
            }
            catch
            {
                TempData["error"] = "Sorry, er ging iets mis.";
            }
            return(RedirectToAction(nameof(Index), id));
        }
        private void addLoggedInUser()
        {
            //Because of cookies a user can already be signed in when the application opens,
            //when this is the case, the loggedInUser in this class won't be set. Therefor we have to check manually if this is the case.
            var user = _httpContextAccessor.HttpContext.User;

            IUserRepository.LoggedInUser = GetById(_userManager.GetUserId(user));
            UserRepository.LoggedInUser  = GetById(_userManager.GetUserId(user));
        }
        public void IndexuserLoggedInAndFeeback_GivesSessionBasedOnIdAndCorrectViewData()
        {
            Session session = new Session()
            {
                Id = 21, Title = "Testen testen testen", Description = "We testen live een SessionController klasse uit", Nameguest = "*****@*****.**", Eventdate = new DateTime(), Starthour = DateTime.Now.TimeOfDay.Add(TimeSpan.FromHours(2)), Endhour = DateTime.Now.TimeOfDay.Add(TimeSpan.FromHours(4))
            };
            ItlabUser user = new ItlabUser()
            {
                Firstname = "Mister", Lastname = "AdminMan", UserStatus = UserStatus.ACTIVE
            };

            _sessionRepository.Setup(m => m.GetById(21)).Returns(session);

            IUserRepository.LoggedInUser = user;
            session.AddFeedback(user, "Top sessie");

            var result = Assert.IsType <ViewResult>(_sessionController.Index(21));
            var model  = Assert.IsType <Session>(result.Model);

            Assert.Equal(session.Id, model.Id);
            Assert.Equal(session.Title, model.Title);
            Assert.Equal(session.Description, model.Description);
            Assert.Equal(session.Eventdate, model.Eventdate);

            var userLoggedIn = Assert.IsType <bool>(result.ViewData["UserLoggedIn"]);

            Assert.True(userLoggedIn);
            var userAlreadyRegistered = Assert.IsType <bool>(result.ViewData["UserAlreadyRegistered"]);

            Assert.False(userAlreadyRegistered);
            var userAttended = Assert.IsType <bool>(result.ViewData["UserAttended"]);

            Assert.False(userAttended);

            var sessionIsFinished = Assert.IsType <bool>(result.ViewData["SessionIsFinished"]);

            Assert.False(sessionIsFinished);

            var feedback     = result.ViewData["Feedback"];
            var feedbackList = Assert.IsAssignableFrom <ICollection <Feedback> >(feedback);

            Assert.Single(feedbackList);
        }
        public IActionResult RegisterForSession(int id)
        {
            Session session = _sessionRepository.GetById(id);

            if (session == null)
            {
                return(NotFound());
            }

            ItlabUser loggedInUser = IUserRepository.LoggedInUser;

            try
            {
                if (session.RegisterdUser.Any(e => e.UserUsernameNavigation.Equals(loggedInUser)))
                {
                    session.RemoveRegisteredUser(loggedInUser);
                    TempData["message"] = $"Je bent uitgeschreven voor deze sessie.";
                }
                else
                {
                    session.AddRegisteredUser(loggedInUser);
                    TempData["message"] = $"Je bent ingeschreven voor deze sessie.";
                }
                _sessionRepository.SaveChanges();
                _usersRepository.SaveChanges();
            }
            catch (Exception e)
            {
                if (e is ArgumentException)
                {
                    TempData["error"] = e.Message;
                }
                else
                {
                    TempData["error"] = "Sorry, er ging iets mis...";
                }
            }

            return(RedirectToAction("index", new { id }));
        }
        public IActionResult SessionAddAttendeesConfirmed(int id, UserAttendViewModel insertedUser)
        {
            Session   session    = _sessionRepository.GetById(id);
            ItlabUser userAttend = _userRepository.GetById(insertedUser.Email);

            if (userAttend != null && session != null)
            {
                try
                {
                    if (session.AttendeeUser.Any(e => e.UserUsernameNavigation.Equals(userAttend)))
                    {
                        session.RemoveAttendeeUser(userAttend);
                        _sessionRepository.SaveChanges();
                        TempData["message"] = $"{userAttend.Username} is afgemeld";
                    }
                    else
                    {
                        session.AddAttendeeUser(userAttend);
                        _sessionRepository.SaveChanges();
                        TempData["message"] = $"{userAttend.Username} is aangemeld";
                    }
                }
                catch (Exception e)
                {
                    TempData["error"] = e.Message;
                }
            }
            else
            {
                TempData["error"] = $"Er ging iets fout {insertedUser.Email} niet gevonden";
            }



            return(View(new UserAttendViewModel()
            {
                Session = session
            }));
        }
        public IActionResult Index(int id)
        {
            Session session = _sessionRepository.GetById(id);

            if (session == null)
            {
                return(NotFound());
            }

            ItlabUser loggedInUser = IUserRepository.LoggedInUser;


            if (loggedInUser == null) //wanneer er niemand ingelogd is
            {
                ViewData["UserLoggedIn"] = false;
            }
            else
            {
                ViewData["UserLoggedIn"]          = true;
                ViewData["UserAlreadyRegistered"] = session.IsUserRegistered(IUserRepository.LoggedInUser.Username); //de ingelogde user is al geregistreerd voor deze sessie
                ViewData["UserAttended"]          = session.AttendeeUser.Any(e => e.UserUsername == loggedInUser.Username);
                // ViewData["DeadlineForFeedback"] = session.GiveDeadlineForFeedback();
            }

            ViewData["SessionIsFinished"] = session.Stateenum.Equals(State.FINISHED);

            if (session.Feedback.Count > 0)
            {
                ViewData["Feedback"] = session.Feedback;
            }

            List <Image> listImages = _sessionRepository.GetImages(id);


            ViewData["Images"] = listImages;
            ViewBag.Images     = listImages;

            return(View(session));
        }