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(); }
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")); }