8 changed files with 306 additions and 11 deletions
			
			
		- 
					10src/Shentun.WebPeis.Application.Contracts/QuestionRegisters/QuestionRegisterAnswerDto.cs
 - 
					10src/Shentun.WebPeis.Application.Contracts/QuestionRegisters/QuestionRegisterItemDto.cs
 - 
					140src/Shentun.WebPeis.Application/QuestionRegisters/QuestionRegisterAppService.cs
 - 
					6src/Shentun.WebPeis.Domain/Models/QuestionAnswer.cs
 - 
					9src/Shentun.WebPeis.Domain/Models/QuestionRegister.cs
 - 
					65src/Shentun.WebPeis.Domain/QuestionRegisters/QuestionRegisterManager.cs
 - 
					59test/Shentun.WebPeis.Application.Tests/QuestionRegisterAppServiceTest.cs
 - 
					14test/Shentun.WebPeis.EntityFrameworkCore.Tests/EntityFrameworkCore/Applications/EfcoreQuestionRegisterAppServiceTest.cs
 
@ -0,0 +1,65 @@ | 
			
		|||||
 | 
				using Shentun.WebPeis.Models; | 
			
		||||
 | 
				using Shentun.WebPeis.Persons; | 
			
		||||
 | 
				using System; | 
			
		||||
 | 
				using System.Collections.Generic; | 
			
		||||
 | 
				using System.Linq; | 
			
		||||
 | 
				using System.Text; | 
			
		||||
 | 
				using System.Threading.Tasks; | 
			
		||||
 | 
				using Volo.Abp; | 
			
		||||
 | 
				using Volo.Abp.Domain.Repositories; | 
			
		||||
 | 
				using Volo.Abp.Domain.Services; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				namespace Shentun.WebPeis.QuestionRegisters | 
			
		||||
 | 
				{ | 
			
		||||
 | 
				    public class QuestionRegisterManager : DomainService | 
			
		||||
 | 
				    { | 
			
		||||
 | 
				        private readonly IRepository<QuestionRegisterItem> _questionRegisterItemRepository; | 
			
		||||
 | 
				        private readonly IRepository<QuestionRegisterAnswer> _questionRegisterAnswerRrepository; | 
			
		||||
 | 
				        private readonly IRepository<Question> _questionRepository; | 
			
		||||
 | 
				        private readonly IRepository<QuestionAnswer> _questionAnswerRepository; | 
			
		||||
 | 
				        public QuestionRegisterManager(IRepository<QuestionRegisterItem> questionRegisterItemRepository, | 
			
		||||
 | 
				            IRepository<QuestionRegisterAnswer> questionRegisterAnswerRrepository, | 
			
		||||
 | 
				            IRepository<Question> questionRepository, | 
			
		||||
 | 
				            IRepository<QuestionAnswer> questionAnswerRepository) | 
			
		||||
 | 
				        { | 
			
		||||
 | 
				            _questionRegisterItemRepository = questionRegisterItemRepository; | 
			
		||||
 | 
				            _questionRegisterAnswerRrepository = questionRegisterAnswerRrepository; | 
			
		||||
 | 
				            _questionRepository = questionRepository; | 
			
		||||
 | 
				            _questionAnswerRepository = questionAnswerRepository; | 
			
		||||
 | 
				        } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        public async Task<QuestionRegister> CreateAsync( | 
			
		||||
 | 
				          QuestionRegister entity) | 
			
		||||
 | 
				        { | 
			
		||||
 | 
				            if (entity.PersonId == Guid.Empty) | 
			
		||||
 | 
				            { | 
			
		||||
 | 
				                throw new UserFriendlyException("PersonId不能为空"); | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				            entity.QuestionRegisterId = GuidGenerator.Create(); | 
			
		||||
 | 
				            //var questions = await _questionRepository.GetListAsync(o => o.IsActive == 'Y');
 | 
			
		||||
 | 
				            //var questionAnswers = await _questionAnswerRepository.GetListAsync();
 | 
			
		||||
 | 
				            //foreach (var question in questions)
 | 
			
		||||
 | 
				            //{
 | 
			
		||||
 | 
				            //    var questionRegisterItem = new QuestionRegisterItem()
 | 
			
		||||
 | 
				            //    {
 | 
			
		||||
 | 
				            //        QuestionRegisterItemId = GuidGenerator.Create(),
 | 
			
		||||
 | 
				            //        QuestionRegisterId = entity.QuestionRegisterId,
 | 
			
		||||
 | 
				            //        QuestionId = question.QuestionId,
 | 
			
		||||
 | 
				            //    };
 | 
			
		||||
 | 
				            //    foreach (var questionAnswer in questionAnswers)
 | 
			
		||||
 | 
				            //    {
 | 
			
		||||
 | 
				            //        var questionRegisterAnswer = new QuestionRegisterAnswer()
 | 
			
		||||
 | 
				            //        {
 | 
			
		||||
 | 
				            //            QuestionRegisterAnswerId = GuidGenerator.Create(),
 | 
			
		||||
 | 
				            //            QuestionRegisterItemId = questionRegisterItem.QuestionRegisterItemId,
 | 
			
		||||
 | 
				            //            QuestionAnswerId = questionAnswer.QuestionAnswerId,
 | 
			
		||||
 | 
				            //        };
 | 
			
		||||
 | 
				            //        questionRegisterItem.QuestionRegisterAnswers.Add(questionRegisterAnswer);
 | 
			
		||||
 | 
				            //    }
 | 
			
		||||
 | 
				            //    entity.QuestionRegisterItems.Add(questionRegisterItem);
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            //}
 | 
			
		||||
 | 
				            return entity; | 
			
		||||
 | 
				        } | 
			
		||||
 | 
				    } | 
			
		||||
 | 
				} | 
			
		||||
@ -0,0 +1,59 @@ | 
			
		|||||
 | 
				using Shentun.WebPeis.Asbitems; | 
			
		||||
 | 
				using Shentun.WebPeis.Models; | 
			
		||||
 | 
				using Shentun.WebPeis.Persons; | 
			
		||||
 | 
				using Shentun.WebPeis.QuestionRegisters; | 
			
		||||
 | 
				using System; | 
			
		||||
 | 
				using System.Collections.Generic; | 
			
		||||
 | 
				using System.Linq; | 
			
		||||
 | 
				using System.Text; | 
			
		||||
 | 
				using System.Threading.Tasks; | 
			
		||||
 | 
				using Volo.Abp.Domain.Repositories; | 
			
		||||
 | 
				using Volo.Abp.Modularity; | 
			
		||||
 | 
				using Volo.Abp.Uow; | 
			
		||||
 | 
				using Xunit; | 
			
		||||
 | 
				using Xunit.Abstractions; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				namespace Shentun.WebPeis | 
			
		||||
 | 
				{ | 
			
		||||
 | 
				    public class QuestionRegisterAppServiceTest<TStartupModule> : WebPeisApplicationTestBase<TStartupModule> | 
			
		||||
 | 
				    where TStartupModule : IAbpModule | 
			
		||||
 | 
				    { | 
			
		||||
 | 
				        private readonly IRepository<QuestionRegister> _repository; | 
			
		||||
 | 
				        private readonly QuestionRegisterAppService _appService; | 
			
		||||
 | 
				        private readonly ITestOutputHelper _output; | 
			
		||||
 | 
				        private readonly IUnitOfWorkManager _unitOfWorkManager; | 
			
		||||
 | 
				        public QuestionRegisterAppServiceTest(ITestOutputHelper output) | 
			
		||||
 | 
				        { | 
			
		||||
 | 
				            _unitOfWorkManager = GetRequiredService<IUnitOfWorkManager>(); | 
			
		||||
 | 
				            _repository = GetRequiredService<IRepository<QuestionRegister>>(); | 
			
		||||
 | 
				            _appService = GetRequiredService<QuestionRegisterAppService>(); | 
			
		||||
 | 
				            _output = output; | 
			
		||||
 | 
				        } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        [Fact] | 
			
		||||
 | 
				        public async Task GetByPersonId() | 
			
		||||
 | 
				        { | 
			
		||||
 | 
				            using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true)) | 
			
		||||
 | 
				            { | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				                var entity = await _appService.GetByPersonIdAsync(new PersonIdInputDto() | 
			
		||||
 | 
				                { | 
			
		||||
 | 
				                    PersonId = new Guid("3a12d7fa-63f1-d549-c2f8-01123e5b7a8a") | 
			
		||||
 | 
				                }); | 
			
		||||
 | 
				                foreach (var item in entity.QuestionRegisterItems) | 
			
		||||
 | 
				                { | 
			
		||||
 | 
				                    _output.WriteLine("-----------" + item.QuestionName); | 
			
		||||
 | 
				                    foreach (var answer in item.QuestionRegisterAnswers) | 
			
		||||
 | 
				                    { | 
			
		||||
 | 
				                        _output.WriteLine(answer.QuestionAnswerName); | 
			
		||||
 | 
				                        foreach(var childAnswer in answer.Childs) | 
			
		||||
 | 
				                        { | 
			
		||||
 | 
				                            _output.WriteLine("----"+childAnswer.QuestionAnswerName); | 
			
		||||
 | 
				                        } | 
			
		||||
 | 
				                    } | 
			
		||||
 | 
				                } | 
			
		||||
 | 
				                await unitOfWork.CompleteAsync(); | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				        } | 
			
		||||
 | 
				    } | 
			
		||||
 | 
				} | 
			
		||||
@ -0,0 +1,14 @@ | 
			
		|||||
 | 
				using System; | 
			
		||||
 | 
				using System.Collections.Generic; | 
			
		||||
 | 
				using System.Linq; | 
			
		||||
 | 
				using System.Text; | 
			
		||||
 | 
				using System.Threading.Tasks; | 
			
		||||
 | 
				using Xunit.Abstractions; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				namespace Shentun.WebPeis.EntityFrameworkCore.Applications | 
			
		||||
 | 
				{ | 
			
		||||
 | 
				    public class EfcoreQuestionRegisterAppServiceTest : QuestionRegisterAppServiceTest<WebPeisEntityFrameworkCoreTestModule> | 
			
		||||
 | 
				    { | 
			
		||||
 | 
				        public EfcoreQuestionRegisterAppServiceTest(ITestOutputHelper output) : base(output) { } | 
			
		||||
 | 
				    } | 
			
		||||
 | 
				} | 
			
		||||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue