コード例 #1
0
        public int Create(string code, string name, int universityId, int createdBy)
        {
            if (_lectureRepository.Table.Any(x =>
                                             (x.LectureCode == code || x.LectureName == name) && x.LectureUniversityIdFk == universityId))
            {
                throw new LectureAlreadyExistsException();
            }

            if (!_userRepository.Table.Any(x =>
                                           x.UserUniversityIdFk == universityId && x.UserIdPk == createdBy))
            {
                throw new UserNotFoundException();
            }

            var lecture = new LectureEntity
            {
                LectureCode           = code,
                LectureName           = name,
                LectureUniversityIdFk = universityId,
                LectureCreatedByIdFk  = createdBy
            };

            _lectureRepository.Insert(lecture);
            _lectureRepository.SaveAll();

            return(lecture.LectureIdPk);
        }
コード例 #2
0
        private static LectureVm ToLectureVm(LectureEntity l)
        {
            var vm = new LectureVm()
            {
                FullText   = WebUtility.HtmlEncode(l.FullText),
                Id         = l.Id,
                Keywords   = l.ImportantWords?.Split(',', StringSplitOptions.RemoveEmptyEntries).ToList(),
                Summary    = WebUtility.HtmlEncode(l.Summary),
                Title      = l.Title,
                UploadDate = l.UploadTime
            };

            if (vm.Keywords == null || string.IsNullOrEmpty(vm.FullText))
            {
                return(vm);
            }

            vm.FullText = vm.FullText.Replace("\n", "</p><p>");

            foreach (var keyword in vm.Keywords)
            {
                vm.FullText =
                    vm.FullText.Replace(keyword, "<span class='text-danger font-weight-bold'>" + keyword + "</span>");

                if (!string.IsNullOrEmpty(vm.Summary))
                {
                    vm.Summary =
                        vm.Summary.Replace(keyword,
                                           "<span class='text-danger font-weight-bold'>" + keyword + "</span>");
                }
            }

            return(vm);
        }
コード例 #3
0
        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();
        }