public async Task UploadLecture(UploadLectureVm vm, IFormFile file, ClaimsPrincipal userClaims)
        {
            var user = await _userManager.GetUserAsync(userClaims);

            if (user == null)
            {
                return;
            }

            var lecture = new LectureEntity()
            {
                Id         = Guid.NewGuid(),
                Title      = vm.Title,
                UploadTime = DateTime.Now,
                User       = user,
                UserId     = user.Id
            };

            var transcript = await _azureService.GetAudioTranscript(file);

            lecture.FullText = transcript;
            if (lecture.FullText == null)
            {
                return;
            }

            IEnumerable <string> keyPhrases = await _azureService.GetImportantWords(lecture.FullText);

            lecture.ImportantWords = string.Join(',', keyPhrases);

            var summary = await _summarizeService.GetSummary(lecture.FullText);

            lecture.Summary = summary;
            if (string.IsNullOrEmpty(summary))
            {
                lecture.Summary = lecture.FullText;
            }

            await _context.Lectures.AddAsync(lecture);

            await _context.SaveChangesAsync();
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Upload(UploadLectureVm vm)
        {
            if (!ModelState.IsValid || Request.Form.Files.Count <= 0 ||
                !Request.Form.Files[0].FileName.ToLower().EndsWith("wav") || Request.Form.Files[0].Length >= 2000000)
            {
                if (!ModelState.IsValid)
                {
                    vm.IsTitleValid = false;
                }
                if (Request.Form.Files.Count <= 0 || !Request.Form.Files[0].FileName.ToLower().EndsWith("wav") ||
                    Request.Form.Files[0].Length >= 2000000)
                {
                    vm.IsFileValid = false;
                }
                return(View(vm));
            }

            await _userService.UploadLecture(vm, Request.Form.Files[0], User);

            return(RedirectToAction("Index"));
        }