// GET: Lectures/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Index", "Courses"));
            }

            Lecture lecture = LTDbApi.GetLecture(id.Value);

            if (lecture == null)
            {
                return(HttpNotFound());
            }

            var currentUser = LTDbApi.GetUser(User.Identity.Name);

            if (!currentUser.IsAdmin && currentUser.Id != lecture.Course.Lecturer.LTUserId)
            {
                return(RedirectToAction("Details", new { id = id }));
                //return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            LectureViewModel model = new LectureViewModel
            {
                AdditionalContent = lecture.AdditionalContent,
                Content           = lecture.Content,
                Id          = lecture.Id,
                LectureName = lecture.LectureName,
                VideoLink   = lecture.VideoLink
            };

            ViewBag.CourseId = lecture.CourseId;
            return(View(model));
        }
Esempio n. 2
0
        private List <LectureViewModel> _getLectures(string userId)
        {
            var lecturer = _lecturerDataService.GetByUserId(userId);
            var lectures = _lectureDataService.GetByLecturerId(lecturer.Id);

            var mappedLectures = new List <LectureViewModel>();

            foreach (var lecture in lectures)
            {
                foreach (var occurence in lecture.Occurences)
                {
                    var mappedLecture = new LectureViewModel
                    {
                        Id          = lecture.Id,
                        Auditorium  = lecture.Auditorium.Name,
                        Lecturer    = lecture.Lecturer.Name + " " + lecture.Lecturer.Surname,
                        Date        = occurence.Date,
                        LectureTime = lecture.LectureTime,
                        LectureType = lecture.LectureType.Type,
                        Subject     = lecture.Subject,
                        Group       = lecture.Group
                    };

                    mappedLectures.Add(mappedLecture);
                }
            }

            return(mappedLectures);
        }
        public async Task <ActionResult> Edit(LectureViewModel lectureModel)
        {
            if (!string.IsNullOrEmpty(lectureModel.VideoLink) && !lectureModel.VideoLink.Contains("watch?v=") && !lectureModel.VideoLink.Contains("embed/"))
            {
                ModelState.AddModelError(string.Empty, "Link to youtube video must contain \"watch?v=\" or \"embed/\" part, just like this: https://www.youtube.com/watch?v=dQw4w9WgXcQ");
            }
            if (ModelState.IsValid)
            {
                var currentUser = LTDbApi.GetUser(User.Identity.Name);
                var lecture     = LTDbApi.GetLecture(lectureModel.Id);
                if (!currentUser.IsAdmin && currentUser.Id != lecture.Course.Lecturer.LTUserId)
                {
                    return(RedirectToAction("Details", new { id = lecture.Id }));
                    //return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                }


                lecture.AdditionalContent = lectureModel.AdditionalContent;
                lecture.Content           = lectureModel.Content;
                lecture.LectureName       = lectureModel.LectureName;
                if (!string.IsNullOrEmpty(lectureModel.VideoLink) && lectureModel.VideoLink.Contains("watch?v="))
                {
                    lecture.VideoLink = lectureModel.VideoLink.Replace("watch?v=", "embed/");
                }
                LTDbApi.UpdateLecture(lecture);
                return(RedirectToAction("Details", "Courses", new { id = lecture.CourseId }));
            }
            return(View(lectureModel));
        }
Esempio n. 4
0
        public async Task <ActionResult> SaveScore(int score)
        {
            var userId = User.Identity.GetUserId().ToString();

            if (score >= 0 && score <= 10)
            {
                TodayWord         word       = TempData["Word"] as TodayWord;
                IList <TodayWord> todayWords = TempData["ListWords"] as IList <TodayWord>;

                LectureViewModel model = new LectureViewModel(word, todayWords);
                // increase exp;
                await m_expService.AddExpForLearnWordAsync(userId, word.WordId, score, word.WordId); // comple word

                // save learnword result
                var result = m_learnWordService.SaveLearnWordResult(model.TodayWord, score);
                await m_expService.AddExpForContinuousLearningAsync(userId, todayWords); // continues if complete all words

                TempData["ListWordToDay"] = todayWords;
                // Update partial view
                if (result == ServiceResult.Success)
                {
                    return(PartialView("_ListTodayWordPartial", todayWords));
                }
            }

            return(Json("error", JsonRequestBehavior.AllowGet));
        }
Esempio n. 5
0
        public async Task <IActionResult> AddLecture(LectureViewModel objLecture)
        {
            if (ModelState.IsValid)
            {
                string uniqueFileName = Utility.ProcessUploadedFile(objLecture.Lecture_File, _hostingEnvironment, "Lectures");

                var classSectionObj = await _tPClassReposiroty.GetClassSectionById(objLecture.Class_Id, objLecture.Section_Id);

                if (classSectionObj != null)
                {
                    var classSubjectObj = await _tPClassReposiroty.GetClassSubjectById(classSectionObj.ClassSection_id, objLecture.Subject_Id);

                    if (classSectionObj != null)
                    {
                        Lecture newLecture = new Lecture
                        {
                            Lecture_Name     = objLecture.Lecture_Name,
                            Lecture_Detail   = objLecture.Lecture_Detail,
                            Lecture_File     = uniqueFileName,
                            LecturePost_Date = objLecture.LecturePost_Date.ToString("yyyyMMdd"), //DateTime.Now.ToString(),
                            Teacher_Id       = HttpContext.Session.GetInt32("UserId") ?? 1,
                            ClassSubject_Id  = classSubjectObj.ClassSubject_Id
                        };

                        int result = await _LectureRepository.AddLecture(newLecture);

                        if (result == 1)
                        {
                            TempData["Success"] = " Lecture Added Successfully";
                            //return RedirectToAction("Index", "lecture", new { area = "teachers" });
                            return(RedirectToAction("subjects", "class", new { ClassSectionId = classSectionObj.ClassSection_id, area = "teachers" }));
                        }
                        else
                        {
                            TempData["Error"] = "Adding Lecture Failed";
                            ///return RedirectToAction("Index", "lecture", new { area = "teachers" });
                            return(RedirectToAction("subjects", "class", new { ClassSectionId = classSectionObj.ClassSection_id, area = "teachers" }));
                        }
                    }
                    else
                    {
                        TempData["Error"] = "Class And Section Dont Have Seleceted Subject";
                        //return RedirectToAction("Index", "lecture", new { area = "teachers" });
                        return(RedirectToAction("subjects", "class", new { ClassSectionId = classSectionObj.ClassSection_id, area = "teachers" }));
                    }
                }
                else
                {
                    TempData["Error"] = "Class With Section Didn't Find";
                    //return RedirectToAction("Index", "lecture", new { area = "teachers" });
                    return(RedirectToAction("subjects", "class", new { ClassSectionId = classSectionObj.ClassSection_id, area = "teachers" }));
                }
            }

            return(View());
        }
        public JsonResult UpdateLecture([DataSourceRequest] DataSourceRequest request, LectureViewModel lecture)
        {
            if (lecture == null || !ModelState.IsValid)
            {
                return Json(new[] { lecture }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
            }

            var updatedLecture = this.lecturesServices.UpdateLecture(lecture);

            return Json((new[] { updatedLecture }.ToDataSourceResult(request, ModelState)), JsonRequestBehavior.AllowGet);
        }
        private static async Task <LectureViewModel> ViewModel()
        {
            var lecture = new LectureViewModel
            {
                Id          = 1,
                Name        = "Math",
                ProfessorId = 1,
            };

            return(lecture);
        }
Esempio n. 8
0
        public async Task <ActionResult <Lecture> > Post(LectureViewModel lectureViewModel)
        {
            if (lectureViewModel == null)
            {
                return(BadRequest());
            }

            var lecture = _mapper.Map <LectureDTO>(lectureViewModel);
            await _db.CreateAsync(lecture);

            return(Ok(lectureViewModel));
        }
        public IActionResult AdminIndex(int?page)
        {
            var audio = dbContext.Lectures
                        .Select(x => new Audio {
                ID = x.ID, Title = x.Title, Date = x.Date
            })
                        .ToList();
            var pager = new Pager(audio.Count(), page);

            audioView = new LectureViewModel()
            {
                Audios    = audio.Skip((pager.CurrentPage - 1) * pager.PageSize).Take(pager.PageSize),
                PagerView = pager
            };
            return(View(audioView));
        }
        public LectureViewModel UpdateLecture(LectureViewModel lecture)
        {
            var lectureFromDb = this.Data.Lectures
                .GetById(lecture.Id);

            lectureFromDb.Title = lecture.Title;
            lectureFromDb.Description = lecture.Description;
            lectureFromDb.VideoUrl = lecture.VideoUrl;
            lectureFromDb.DemoUrl = lecture.DemoUrl;
            lectureFromDb.PresentationUrl = lecture.PresentationUrl;

            this.Data.SaveChanges();

            var updatedLecture = this.GetLectureById(lecture.Id);
            return updatedLecture;
        }
        // GET: /<controller>/
        public IActionResult Index()
        {
            explanation = new ExplanationViewModel()
            {
                Explains = dbContext.Explanations
                           .Select(x => new Explain {
                    Title = x.Title, BookName = x.BookName, ID = x.ID, Date = x.Date
                })
                           .Take(5)
                           .ToList()
            };

            writing = new WritingViewModel()
            {
                Books = dbContext.Writings
                        .Select(x => new Book {
                    ID = x.ID, Category = x.Category, Title = x.Title
                })
                        .Take(5)
                        .ToList()
            };

            lecture = new LectureViewModel()
            {
                Audios = dbContext.Lectures
                         .Select(x => new Audio {
                    ID = x.ID, Title = x.Title, Date = x.Date
                })
                         .Take(5)
                         .ToList()
            };

            article = new ArticleViewModel()
            {
                Articles = dbContext.Articles.Take(5).ToList()
            };

            homeView = new HomeViewModel()
            {
                ExplanationViews = explanation,
                WritingViews     = writing,
                LectureViews     = lecture,
                ArticleViews     = article
            };

            return(View(homeView));
        }
Esempio n. 12
0
        public IActionResult Post([FromBody] LectureViewModel obj)
        {
            DigitalBoardMarkerContext db = new DigitalBoardMarkerContext();
            Lectures l = new Lectures();

            if (!db.Courses.Any(b => b.Id == obj.courseId))
            {
                ModelState.AddModelError("", "Course with course id doesn't exist");
                return(BadRequest(ModelState));
            }

            l.CourseId = obj.courseId;
            l.Name     = obj.Name;
            db.Add(l);
            db.SaveChanges();
            return(Ok());
        }
Esempio n. 13
0
        public IActionResult UploadLectureVideo([FromBody] LectureViewModel obj)
        {
            string tempFilePath = obj.FilePath;

            obj.FilePath = "Resources/Videos/";
            obj.FilePath = obj.FilePath + tempFilePath;
            DigitalBoardMarkerContext db = new DigitalBoardMarkerContext();
            Video v = new Video();

            v.CourseId      = obj.courseId;
            v.Titel         = obj.Name;
            v.Lectureid     = obj.LectureId;
            v.VideoFilePath = obj.FilePath;
            db.Add(v);
            db.SaveChanges();
            return(Ok());
        }
Esempio n. 14
0
        public async Task <ActionResult <LectureDTO> > Put(LectureViewModel lectureViewModel)
        {
            if (lectureViewModel == null)
            {
                return(BadRequest());
            }

            if (!_db.Find(l => l.Id == lectureViewModel.Id).Any())
            {
                return(NotFound());
            }

            var lecture = _mapper.Map <LectureDTO>(lectureViewModel);
            await _db.UpdateAsync(lecture);

            return(Ok(lectureViewModel));
        }
Esempio n. 15
0
        public IEnumerable <LectureViewModel> getLectureNotes(int lectureId)
        {
            DigitalBoardMarkerContext db   = new DigitalBoardMarkerContext();
            List <LectureViewModel>   list = new List <LectureViewModel>();

            foreach (Notes v in db.Notes)
            {
                if (v.Lectureid == lectureId)
                {
                    LectureViewModel lc = new LectureViewModel();
                    lc.Name     = v.Title;
                    lc.Id       = v.Id;
                    lc.FilePath = v.FilePath;
                    list.Add(lc);
                }
            }
            return(list);
        }
Esempio n. 16
0
        public IActionResult UploadLectureNotes([FromBody] LectureViewModel obj)
        {
            string tempFilePath = obj.FilePath;

            obj.FilePath = "Resources/Notes/";
            obj.FilePath = obj.FilePath + tempFilePath;
            DigitalBoardMarkerContext db = new DigitalBoardMarkerContext();
            Notes v = new Notes();

            v.CourseId  = obj.courseId;
            v.Title     = obj.Name;
            v.Lectureid = obj.LectureId;
            v.FilePath  = obj.FilePath;
            v.UpdatedBy = db.Users.Where(a => a.Email == obj.userId).FirstOrDefault().Id;
            v.CreatedBy = db.Users.Where(a => a.Email == obj.userId).FirstOrDefault().Id;
            v.UpdatedOn = DateTime.Now;
            v.CreatedOn = DateTime.Now;
            db.Add(v);
            db.SaveChanges();
            return(Ok());
        }
Esempio n. 17
0
        public async Task <IActionResult> Update([FromBody] LectureViewModel lectureViewModel)
        {
            try
            {
                Lecture lectureMapped = mapper.Map <Lecture>(lectureViewModel);

                await lectureRepository.Update(lectureMapped);

                return(Ok(new
                {
                    Results = lectureMapped
                }));
            }
            catch (Exception e)
            {
                Console.WriteLine($"ErrorMesages: {e}");

                return(BadRequest(new
                {
                    Errors = new { Code = "InvalidInputParameters", Description = "Invalid Input Parameters!" }
                }));
            }
        }
        public ActionResult Create(LectureViewModel model)
        {
            if (ModelState.IsValid)
            {
                Lecture lecture = new Lecture()
                {
                    ClassRoomID   = model.ClassRoomID,
                    GroupID       = model.GroupID,
                    LectureTimeID = model.LectureTimeID == 0 ? null : model.LectureTimeID,
                    SubjectID     = model.SubjectID,
                    TeacherID     = model.TeacherID,
                    WeekdayID     = model.WeekdayID == 0 ? null : model.WeekdayID,
                    Type          = model.Type,
                    IsPcRequired  = model.IsPCRequired
                };

                db.Lectures.Add(lecture);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
 public LectureViewModel Get(int id)
 {
     LectureViewModel vm = new LectureViewModel();
     var lec = (from l in db.Lectures
                where l.ID == id
                select l).FirstOrDefault();
     vm.Title = lec.Name;
     vm.ID = id;
     vm.VideoURL = lec.LectureURL;
     var result = (from c in db.Comments
                  where c.Lecture.ID == id
                   select c).AsEnumerable().Reverse();
     if (result == null)
         throw new FieldAccessException("Nothing found in db.Comments");
     foreach( Comment c in result) {
         CommentContainer cc = new CommentContainer();
         cc.AuthorName = c.Poster.FullName;
         cc.PublishedDate = c.DatePublished.ToUniversalTime().ToString();
         cc.CommentText = c.CommentText;
         vm.comments.Add(cc);
     }
     return vm;
 }
Esempio n. 20
0
        public override ActionResult Index(RenderModel model)
        {
            IPublishedContent course = model.Content.AncestorOrSelf(nameof(Course));
            int  courseId            = _coursesContentService.GetCourseId(course);
            bool isDemoLecture       = model.Content.GetPropertyValue <bool>(nameof(Lecture.IsDemo));

            if (!isDemoLecture && !_subscriptions.HasActiveSubscription(User.Identity.Name, courseId))
            {
                TempData["ErrorMessage"] = "Моля, запишете се за курса, за да имате достъп до лекциите";
                return(Redirect(course.Url));
            }

            IPublishedContent[] lectures         = model.Content.AncestorsOrSelf(nameof(Course)).DescendantsOrSelf(nameof(Lecture)).ToArray();
            LectureViewModel    lectureViewModel = new LectureViewModel();
            IPublishedContent   precedingLecture = null;
            IPublishedContent   followingLecture = null;

            for (int i = 0; i < lectures.Length; i++)
            {
                if (lectures[i].Id == model.Content.Id)
                {
                    if (i > 0)
                    {
                        precedingLecture = lectures[i - 1];
                    }
                    if (i < lectures.Length - 1)
                    {
                        followingLecture = lectures[i + 1];
                    }
                    break;
                }
            }

            if (precedingLecture != null)
            {
                lectureViewModel.PreviousLecture = new LectureLinkViewModel();
                _mapper.Map(precedingLecture, lectureViewModel.PreviousLecture);
            }

            if (followingLecture != null)
            {
                lectureViewModel.NextLecture = new LectureLinkViewModel();
                _mapper.Map(followingLecture, lectureViewModel.NextLecture);
            }

            lectureViewModel.Content = model.Content.GetPropertyValue <string>(nameof(Lecture.Content));
            lectureViewModel.Id      = model.Content.Id;

            Dictionary <int, ModuleViewModel> modulesDictionary = new Dictionary <int, ModuleViewModel>();

            foreach (IPublishedContent lectureContent in lectures)
            {
                int currentModuleId = lectureContent.Parent.Id;
                if (!modulesDictionary.ContainsKey(currentModuleId))
                {
                    modulesDictionary.Add(currentModuleId, new ModuleViewModel {
                        Name = lectureContent.Parent.Name
                    });
                }
                LectureLinkViewModel lecture = new LectureLinkViewModel();
                _mapper.Map(lectureContent, lecture);

                if (lectureContent.Id == model.Content.Id)
                {
                    lecture.IsCurrent = true;
                }

                modulesDictionary[currentModuleId].LectureLinks.Add(lecture);
            }

            lectureViewModel.Modules      = modulesDictionary.Values;
            lectureViewModel.AssesmentUrl = Url.RouteUrl("Assessment", new { courseNiceUrl = model.Content.Parent.Parent.UrlName });


            if (User.Identity.IsAuthenticated)
            {
                _lectures.TrackLectureVisit(User.Identity.Name, model.Content.Id);
            }

            return(CurrentTemplate(lectureViewModel));
        }
        protected override SaveableViewModel GetViewModel(EntitiesDTO.BaseEntityDTO entity)
        {
            if (entity == null)
                return null;
            SaveableViewModel viewModel;
            if (entity is TeacherDTO && !(lastViewModel is TeacherPracticesViewModel))
                viewModel = new TeacherLecturesViewModel(UserInterop, ControllerInterop, Dispatcher, entity as TeacherDTO);
            else if (entity is TeacherDTO)
                viewModel = new TeacherPracticesViewModel(UserInterop, ControllerInterop, Dispatcher, entity as TeacherDTO);
            else if (entity is LectureDTO)
                viewModel = new LectureViewModel(UserInterop, ControllerInterop, Dispatcher, entity as LectureDTO);
            else if (entity is PracticeTeacherDTO)
                viewModel = new PracticeTeacherViewModel(UserInterop, ControllerInterop, Dispatcher, entity as PracticeTeacherDTO);
            else
                viewModel = null;

            OnIsVisibleChanged();

            return viewModel;
        }
Esempio n. 22
0
        public async Task <ActionResult> Lecture(string classId, string wordId)
        {
            DateTime start = DateTime.Now;
            // begin action
            // Init values
            bool isAllowView              = true;
            bool isAllowLearn             = true;
            bool isAllowResume            = true;
            IList <TodayWord> _todayWords = new List <TodayWord>();
            TodayWord         startToDay  = new TodayWord();
            // get user id
            string userId = User.Identity.GetUserId();
            //Check user release date before learn (check in LearnWordController action Lecture and in AccountController action GetActiveHistory)
            // await m_userService.CheckUserReleaseAsync(userId);

            // get data
            TodayWord         word       = TempData["FirstWord"] as TodayWord;
            IList <TodayWord> todayWords = TempData["ListWordToDay"] as IList <TodayWord>;
            ViewWordViewModel viewWordVM = new ViewWordViewModel();

            // If resume class
            if (word != null && todayWords != null)
            {
                // Loading to view model
                LectureViewModel model = new LectureViewModel(word, todayWords);
                // Passing into next request
                TempData["ListWords"] = todayWords;
                TempData["Word"]      = word;
                System.Diagnostics.Debug.WriteLine("Lecture {0}", (DateTime.Now - start));
                // return view
                return(View(model));
            }
            // if user calls by url
            else
            {
                // get list word of today
                _todayWords = await m_learnWordService.GetListWordsTodayAsync(userId, classId);

                // Check if user has learn this word or not
                isAllowView = await m_learnWordService.IsAllowToViewAsync(_todayWords, wordId);

                isAllowLearn = await this.m_learnWordService.IsUserLearnWordBeforeAsync(userId, wordId);

                isAllowResume = await this.m_classService.IsUserRegisteredClassAsync(userId, classId);

                // continues
                // Get word to start
                startToDay = await m_learnWordService.GetTodayWordAsync(userId, classId, wordId);

                // if word not found, this is anonymous access
                if (startToDay == null)
                {
                    Word w = await m_learnWordService.GetWordByIdAsync(wordId);

                    startToDay = EntityFactory.CreateTodayWord(userId, classId, w, true, false);
                }
                else
                {
                    // Do nothing
                }
            }
            // If anonymous type, load comment only

            viewWordVM = await this.GetWordDetailsVM(userId, wordId);

            // Loading to view model
            LectureViewModel md = new LectureViewModel(startToDay, _todayWords, viewWordVM, isAllowView, isAllowLearn, isAllowResume);

            // Passing into next request
            TempData["ListWords"] = _todayWords;
            TempData["Word"]      = startToDay;
            System.Diagnostics.Debug.WriteLine("Lecture {0}", (DateTime.Now - start));
            // return view
            return(View(md));
        }
        public JsonResult DestroyLecture([DataSourceRequest] DataSourceRequest request, LectureViewModel lecture)
        {
            var deletedLecture = this.lecturesServices.DestroyLecture(lecture.Id);

            return Json(new[] { deletedLecture }, JsonRequestBehavior.AllowGet);
        }
        /// <summary>
        /// Sukuria irasa duombazėje
        /// </summary>
        /// <returns>View modeli</returns>
        /// [AdminAuthorize]
        public ActionResult Create()
        {
            List <SelectListItem> types = new List <SelectListItem>();

            types.Add(new SelectListItem()
            {
                Text  = "Teorinė",
                Value = "Teorinė"
            });
            types.Add(new SelectListItem()
            {
                Text  = "Praktinė",
                Value = "Praktinė"
            });
            types.Add(new SelectListItem()
            {
                Text     = "-",
                Value    = "",
                Selected = true
            });

            LectureViewModel model = new LectureViewModel()
            {
                Teachers = db.Teachers.ToList().Select(x => new SelectListItem()
                {
                    Text  = string.Format("{0} {1}", x.FirstName, x.LastName),
                    Value = x.ID.ToString()
                }).ToList().AddDefaultItem(),

                ClassRooms = db.ClassRooms.ToList().Select(x => new SelectListItem()
                {
                    Text  = x.Name,
                    Value = x.ID.ToString()
                }).ToList().AddDefaultItem(),

                Groups = db.Groups.ToList().Select(x => new SelectListItem()
                {
                    Text  = x.Name,
                    Value = x.ID.ToString()
                }).ToList().AddDefaultItem(),

                Subjects = db.Subjects.ToList().Select(x => new SelectListItem()
                {
                    Text  = x.Name,
                    Value = x.ID.ToString()
                }).ToList().AddDefaultItem(),

                LectureTimes = db.LectureTimes.ToList().Select(x => new SelectListItem()
                {
                    Text  = string.Format("{0} - {1}", x.Start, x.End),
                    Value = x.ID.ToString()
                }).ToList().AddDefaultItem(),

                Weekdays = db.Weekdays.ToList().Select(x => new SelectListItem()
                {
                    Text  = x.Name,
                    Value = x.ID.ToString()
                }).ToList().AddDefaultItem(),

                TypesList = types
            };

            return(View(model));
        }