public override async Task <int> CreateAsync(DetailDto model, Func <DetailDto, Detail> converter) { var groupSubjectId = (await _groupSubjectRepository.FilterAsync(x => x.GroupId == model.Group.Id && x.SubjectId == model.Subject.Id)).FirstOrDefault()?.Id; if (!groupSubjectId.HasValue) { throw new NullReferenceException(nameof(GroupSubject)); } var entity = converter?.Invoke(model); entity.GroupSubjectId = groupSubjectId.Value; return(await _repository.CreateAsync(entity)); }