Пример #1
0
        //Display course information
        // GET: /Courses/CourseInfo
        public ActionResult CourseInfo(int courseId)
        {
            logManager.AddEventLog("CoursesController => CourseInfo ActionResult called(GET)", "ActionResult");
            var course = coursesManager.GetSpecificCourse(courseId);

            ViewBag.Lector = coursesManager.GetLectorInfo(course);
            string currentUserId = User.Identity.GetUserId();

            ViewBag.UserIsSignedToCourse = coursesManager.UserIsSignedToCourse(courseId, currentUserId);
            ViewBag.UserIsLector         = false;
            ViewBag.CourseStatusEnded    = false;

            if (course.CourseStatus == Course.Status.Ended)
            {
                ViewBag.CourseStatusEnded = true;
            }

            if (course.LectorId == currentUserId)
            {
                ViewBag.UserIsLectorOfThisCourse = true;
            }
            else
            {
                ViewBag.UserIsLectorOfThisCourse = false;
            }

            return(View(course));
        }
Пример #2
0
        //Manage journals when course is Ended
        // GET: /Journal/ManageJournal
        public ActionResult ManageJournal(int courseId, string userFirstNameFilter, string userLastNameFilter, int?page, string statusMessage)
        {
            logManager.AddEventLog("JournalController => ManageJournal ActionResult called(GET)", "ActionResult");
            ViewBag.StatusMessage   = statusMessage;
            ViewBag.FirstNameFilter = userFirstNameFilter;
            ViewBag.LastNameFilter  = userLastNameFilter;
            ViewBag.CourseId        = courseId;
            int pageSize     = 5;
            int pageNumber   = (page ?? 1);
            var journalsList = journalsManager.GetMarksForUsers(courseId);
            var course       = coursesManager.GetSpecificCourse(courseId);

            var courseLectorId = course.LectorId;
            var currentUserId  = User.Identity.GetUserId();

            if (courseLectorId == currentUserId && course.CourseStatus == Course.Status.Ended)
            {
                if (Request.HttpMethod == "POST")
                {
                    journalsList = usersManager.GetSortedUsersList(userFirstNameFilter, userLastNameFilter, null, journalsList);
                    List <JournalViewModel> journalsPost = JournalViewModel.GetJournalsList(journalsList, course);

                    return(View(journalsPost.ToPagedList(pageNumber, pageSize)));
                }
                journalsList = usersManager.GetSortedUsersList(userFirstNameFilter, userLastNameFilter, null, journalsList);
                List <JournalViewModel> journals = JournalViewModel.GetJournalsList(journalsList, course);

                return(View(journals.ToPagedList(pageNumber, pageSize)));
            }
            return(View("Error"));
        }
Пример #3
0
        //Display user data and links to see user courses, lectors functions, admin functions, edit account
        // GET: /Manage/Index
        public async Task <ActionResult> Index(ManageMessageId?message)
        {
            logManager.AddEventLog("ManageController => Index ActionResult called(GET)", "ActionResult");
            ViewBag.StatusMessage =
                message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed."
                : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set."
                : message == ManageMessageId.SetTwoFactorSuccess ? "Your two-factor authentication provider has been set."
                : message == ManageMessageId.Error ? "An error has occurred."
                : message == ManageMessageId.AddPhoneSuccess ? "Your phone number was added."
                : message == ManageMessageId.RemovePhoneSuccess ? "Your phone number was removed."
                : message == ManageMessageId.ProfileEdited ? "You succesfully edited your account data!"
                : "";

            var userId = User.Identity.GetUserId();
            var user   = usersManager.GetSpecificUser(userId);

            ViewBag.UserRole = usersManager.GetUserRole(userId);

            var model = new IndexViewModel
            {
                UserId            = userId,
                FirstName         = user.FirstName,
                LastName          = user.LastName,
                Age               = user.Age,
                UserInfo          = user.UserInformation,
                HasPassword       = HasPassword(),
                PhoneNumber       = await UserManager.GetPhoneNumberAsync(userId),
                TwoFactor         = await UserManager.GetTwoFactorEnabledAsync(userId),
                Logins            = await UserManager.GetLoginsAsync(userId),
                BrowserRemembered = await AuthenticationManager.TwoFactorBrowserRememberedAsync(userId)
            };

            return(View(model));
        }
Пример #4
0
        public static List <JournalViewModel> GetJournalsList(ICollection <Journal> journals, UsersManager usersManager, CoursesManager coursesManager)
        {
            LogManager logManager = new LogManager();

            logManager.AddEventLog("JournalViewModel => GetJournalsList 2nd method called", "Method");

            List <JournalViewModel> result = new List <JournalViewModel>();

            foreach (var item in journals)
            {
                var course     = coursesManager.GetSpecificCourse(item.CourseId);
                var lectorData = usersManager.GetSpecificUser(course.LectorId);
                var lector     = "None";
                if (lectorData != null)
                {
                    lector = string.Concat(lectorData.FirstName, " ", lectorData.LastName);
                }
                result.Add(new JournalViewModel(
                               item.Id,
                               item.Users.First().FirstName,
                               item.Users.First().LastName,
                               item.Mark,
                               course.CourseName,
                               course.Theme,
                               course.Id,
                               lector,
                               course.CourseStatus.ToString()
                               ));
            }
            return(result);
        }
        public JObject Insert([FromBody] JObject obj)
        {
            LogEventEntry.EventType type = (LogEventEntry.EventType)(int) obj["type"];
            long accountId = (long)obj["accountId"];
            Dictionary <string, object> args = new Dictionary <string, object>();

            JObject argsObj = (JObject)obj["args"];

            if (argsObj != null)
            {
                switch (type)
                {
                case LogEventEntry.EventType.OUT_OF_SYNC:
                    args.Add("subTick", (int)argsObj["subTick"]);
                    args.Add("clientChecksum", (int)argsObj["clientChecksum"]);
                    args.Add("serverChecksum", (int)argsObj["serverChecksum"]);
                    args.Add("debugJSON", (string)argsObj["debugJSON"]);
                    break;

                default:
                    return(this.BuildResponse(HttpStatusCode.InternalServerError));
                }

                LogManager.AddEventLog(type, new LogicLong((int)(accountId >> 32), (int)accountId), args);

                return(this.BuildResponse(HttpStatusCode.OK));
            }

            return(this.BuildResponse(HttpStatusCode.InternalServerError));
        }
Пример #6
0
        //return typed list to display it in View
        public static List <CourseViewModel> GetCoursesList(ICollection <Course> coursesList, int constructorType)
        {
            LogManager logManager = new LogManager();

            logManager.AddEventLog("CourseViewModel => GetCoursesList method called", "Method");
            UsersManager           usersManager = new UsersManager();
            var                    lectors      = usersManager.GetAllLectors();
            List <CourseViewModel> courses      = new List <CourseViewModel>();

            switch (constructorType)
            {
            //Display courses for all users
            case 1:
                foreach (var item in coursesList)
                {
                    var lectorData = lectors.Where(u => u.Id == item.LectorId).FirstOrDefault();
                    var lector     = "None";
                    if (lectorData != null)
                    {
                        lector = string.Concat(lectorData.FirstName, " ", lectorData.LastName);
                    }
                    courses.Add(new CourseViewModel(
                                    item.Id,
                                    item.CourseName,
                                    item.StartDate.ToShortDateString(),
                                    item.EndDate.ToShortDateString(),
                                    item.Theme,
                                    item.CourseStatus.ToString(),
                                    item.Users.Count,
                                    lector,
                                    item.LectorId));
                }
                break;

            //Display courses for lector
            case 2:
                foreach (var item in coursesList)
                {
                    courses.Add(new CourseViewModel(
                                    item.Id,
                                    item.CourseName,
                                    item.StartDate.ToShortDateString(),
                                    item.EndDate.ToShortDateString(),
                                    item.Theme,
                                    item.CourseStatus.ToString(),
                                    item.Users.Count));
                }
                break;
            }

            return(courses);
        }
Пример #7
0
 //Add new user
 // GET: /Admin/ManageUsers/AddUser
 public ActionResult AddUser()
 {
     logManager.AddEventLog("ManageUsersController(Admin area) => AddUser ActionResult called(GET)", "ActionResult");
     ViewBag.Roles = new List <string> {
         "Admin", "Lector", "Student"
     };
     return(View());
 }
Пример #8
0
        // GET: Lector
        public ActionResult LectorInfo(int courseId)
        {
            logManager.AddEventLog("LectorController => LectorInfo ActionResult called(GET)", "ActionResult");
            if (courseId == null)
            {
                return(View("Error"));
            }
            var lectorId = coursesManager.GetSpecificCourse(courseId).LectorId;
            var lector   = usersManager.GetSpecificUser(lectorId);

            ViewBag.CourseId = courseId;

            return(View(lector));
        }
Пример #9
0
        //Display all journals
        // GET: /Admin/ManageJournals/DisplayJournals
        public ActionResult DisplayJournals(string userFirstNameFilter, string userLastNameFilter, int?page, string statusMessage)
        {
            logManager.AddEventLog("ManageJournalsController(Admin area) => DisplayJournals ActionResult called(GET)", "ActionResult");
            ViewBag.StatusMessage   = statusMessage;
            ViewBag.FirstNameFilter = userFirstNameFilter;
            ViewBag.LastNameFilter  = userLastNameFilter;

            int pageSize   = 10;
            int pageNumber = (page ?? 1);

            var journalsList = journalsManager.GetAllJournals();

            if (Request.HttpMethod == "POST")
            {
                journalsList = journalsManager.GetSortedJournalsList(userFirstNameFilter, userLastNameFilter, journalsList);
                List <JournalViewModel> journalsPost = JournalViewModel.GetJournalsList(journalsList, usersManager, coursesManager);

                return(View(journalsPost.ToPagedList(pageNumber, pageSize)));
            }
            journalsList = journalsManager.GetSortedJournalsList(userFirstNameFilter, userLastNameFilter, journalsList);
            List <JournalViewModel> journals = JournalViewModel.GetJournalsList(journalsList, usersManager, coursesManager);

            return(View(journals.ToPagedList(pageNumber, pageSize)));
        }
Пример #10
0
        public static List <JournalViewModel> GetJournalsList(ICollection <ApplicationUser> users, Course course)
        {
            LogManager logManager = new LogManager();

            logManager.AddEventLog("JournalViewModel => GetJournalsList 1st method called", "Method");
            List <JournalViewModel> result = new List <JournalViewModel>();

            foreach (var item in users)
            {
                result.Add(new JournalViewModel(
                               item.Journals.First().Id,
                               item.FirstName,
                               item.LastName,
                               item.Journals.First().Mark,
                               course.CourseName,
                               course.Id
                               ));
            }
            return(result);
        }
Пример #11
0
        //get sorted viewmodel list based on filters
        public static List <JournalViewModel> GerSortedJournalsList(string courseName, string courseStatus, List <JournalViewModel> journals)
        {
            LogManager logManager = new LogManager();

            logManager.AddEventLog("JournalViewModel => GerSortedJournalsList method called", "Method");
            if (courseName != null && courseName != "")
            {
                journals = journals
                           .Where(c => c.CourseName.Length >= courseName.Length)
                           .Where(c => c.CourseName.ToLower().Substring(0, courseName.Length) == courseName.ToLower())
                           .ToList();
            }
            if (courseStatus != null && courseStatus != "" && courseStatus != "All")
            {
                journals = journals
                           .Where(c => c.CourseStatus == courseStatus)
                           .ToList();
            }

            return(journals);
        }
Пример #12
0
        public static List <UserViewModel> GetUsersList(ICollection <ApplicationUser> usersList, UsersManager usersManager)
        {
            LogManager logManager = new LogManager();

            logManager.AddEventLog("UserViewModel => GetUsersList method called", "Method");
            List <UserViewModel> users = new List <UserViewModel>();

            if (usersList != null)
            {
                foreach (var item in usersList)
                {
                    users.Add(new UserViewModel(
                                  item.Id,
                                  item.FirstName,
                                  item.LastName,
                                  item.Age,
                                  item.Email,
                                  usersManager.GetUserRole(item.Id)
                                  ));
                }
            }
            return(users);
        }
Пример #13
0
 //Add new course
 // GET: /Admin/ManageCourses/AddCourse
 public ActionResult AddCourse()
 {
     logManager.AddEventLog("ManageCoursesController(Admin area) => AddCourse ActionResult called(GET)", "ActionResult");
     ViewBag.LectorsList = new SelectList(usersManager.GetLectorsForCourseEdit(null), "Id", "LastName");
     return(View());
 }