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
-
144src/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