public async Task <IActionResult> Edit(EditLectureBindingModel model)
        {
            var userId = this.userManager.GetUserId(this.User);

            if (model.VideoUpload == null)
            {
                await this.lectureService.Edit(model, userId);

                return(View(model));
            }
            else
            {
                var inputAsset = await this.azureMediaService.CreateInputAssetAsync(model.VideoUpload);

                var outputAsset = await this.azureMediaService.CreateOutputAssetAsync();

                var transform = await this.azureMediaService.GetOrCreateTransformAsync();

                var job = await this.azureMediaService.SubmitJobAsync(inputAsset.Name, outputAsset.Name, transform.Name);

                await this.azureMediaService.WaitForJobToFinishAsync(transform.Name, job.Name);

                var streamingLocator = await this.azureMediaService.CreateStreamingLocatorAsync(outputAsset.Name);

                var getStreamingUrls = await this.azureMediaService.GetStreamingUrlsAsync(streamingLocator.Name);

                await this.azureMediaService.CleanUpAsync(transform.Name, inputAsset.Name);

                await this.lectureService.EditLectureDbAsync(model, userId, outputAsset.Name, getStreamingUrls[2]);

                return(Json("Valid"));
            }
        }
Example #2
0
        public IActionResult EditLecture(int id)
        {
            var lecture = this.db.Lectures.FirstOrDefault(l => l.Id == id && l.IsDeleted == false);

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

            var lectureModel = this.mapper.Map <LectureBindingModel>(lecture);

            var editLectureModel = new EditLectureBindingModel()
            {
                Lecture = lectureModel
            };

            editLectureModel.Lecture.LectureId = id;

            editLectureModel.Resources = this.db.Resources
                                         .Where(r => r.LectureId == id && r.IsDeleted == false)
                                         .Select(r => new InfoViewModel()
            {
                Name = r.Title,
                Id   = r.Id
            })
                                         .ToList();

            return(View(editLectureModel));
        }
Example #3
0
        public async Task Edit(EditLectureBindingModel model, string userId)
        {
            var lecture = this.db.Lectures.FirstOrDefault(x => x.Id == model.Id && x.Course.InstructorId == userId);
            if (lecture == null)
            {
                throw new ArgumentNullException(
                   string.Format(ExceptionMessages.InvalidLectureId, model.Id));
            }

            this.db.Entry(lecture)
                .CurrentValues.SetValues(model);

            await this.db.SaveChangesAsync();
        }
Example #4
0
        public IActionResult EditLecture(EditLectureBindingModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }

            var lecture = this.db.Lectures.FirstOrDefault(l => l.Id == model.Lecture.LectureId && l.IsDeleted == false);

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

            lecture.Title       = model.Lecture.Title;
            lecture.Description = model.Lecture.Description;
            lecture.StartTime   = model.Lecture.StartTime;
            lecture.EndTime     = model.Lecture.EndTime;
            lecture.LectureHall = model.Lecture.LectureHall;

            this.db.SaveChanges();

            return(Redirect(string.Format(this.ReturnUrl, model.Lecture.InstanceId)));
        }