public async Task <IList <PersonVm> > Handle(GetPersonsQuery request, CancellationToken cancellationToken) { var result = new List <PersonVm>(); var persons = await _personRepository.GetAll(); if (persons != null) { result = _mapper.Map <List <PersonVm> >(persons); } return(result); }
/// <summary> /// Initializes a new instance of the <see cref="GetPersonModule" /> class. /// </summary> /// <param name="repo">Database repository</param> public GetPersonModule(IPersonRepository repo) : base("/api/v1") { _repo = repo; Get["/persons"] = parameters => { try { var query = new GetPersonsQuery(); var handler = PersonQueryHandlerFactory.Build(_repo, query); var persons = handler.Get(); if (persons == null || !persons.Any()) { return(HttpStatusCode.NotFound); } return(Response.AsJson(persons)); } catch (Exception ex) { Log.Error(ex, "Error of {0} execution.", nameof(GetPersonModule)); } return(HttpStatusCode.NotFound); }; Get["/persons/{person_id}"] = parameters => { try { var query = new GetPersonQuery(new Guid(parameters["person_id"])); var handler = PersonQueryHandlerFactory.Build(_repo, query); var person = handler.Get(); if (person == null) { return(HttpStatusCode.NotFound); } return(Response.AsJson(person)); } catch (Exception ex) { Log.Error(ex, "Error of {0} execution.", nameof(GetPersonModule)); } return(HttpStatusCode.NotFound); }; }
public async Task HandleGetContractorPersons_ShouldReturnEmptyList_WhenSearchReturnsNull() { using (new IPOContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider)) { _query = new GetPersonsQuery(_searchString); var dut = new GetPersonsQueryHandler(_personApiServiceMock.Object, _plantProvider); _personApiServiceMock .Setup(x => x.GetPersonsAsync(TestPlant, _searchString, _numOfRows)) .Returns(Task.FromResult <IList <ProCoSysPerson> >(null)); var result = await dut.Handle(_query, default); Assert.AreEqual(ResultType.Ok, result.ResultType); Assert.AreEqual(0, result.Data.Count); } }
protected override IQueryable <PersonDto> Handle(GetPersonsQuery request) { _logger.LogInformation("GetPersonsHandler - Get persons."); return(_context.Persons .AsNoTracking() .Select(x => new PersonDto { PersonId = x.PersonId.ToString(), FirstName = x.FirstName, LastName = x.LastName, Alias = x.Alias, Email = x.Email, ProfileName = x.ProfileName, UserName = x.UserName, UserStatus = x.UserStatus }) .AsQueryable()); }
public async Task HandleGetPersons_ShouldReturnCorrectItems() { using (new IPOContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider)) { _personApiServiceMock .Setup(x => x.GetPersonsAsync(TestPlant, _searchString, _numOfRows)) .Returns(Task.FromResult(_mainApiPersons)); _query = new GetPersonsQuery(_searchString); var dut = new GetPersonsQueryHandler(_personApiServiceMock.Object, _plantProvider); var result = await dut.Handle(_query, default); Assert.AreEqual(3, result.Data.Count); var person1 = result.Data.ElementAt(0); var person2 = result.Data.ElementAt(1); var person3 = result.Data.ElementAt(2); AssertPersonData(_mainApiPersons.Single(c => c.AzureOid == person1.AzureOid), person1); AssertPersonData(_mainApiPersons.Single(t => t.AzureOid == person2.AzureOid), person2); AssertPersonData(_mainApiPersons.Single(t => t.AzureOid == person3.AzureOid), person3); } }
public async Task Handle_ReturnsCorrectVmAndListCount() { // Arrange var query = new GetPersonsQuery() { NameSearch = "name" }; var handler = new GetPersonsQuery.GetPersonQueryHandler(_context, _mapper); // Act var result = await handler.Handle(query, CancellationToken.None); // Assert result.ShouldBeOfType <PersonsVm>(); result.Persons.Count.ShouldBe(1); var person = result.Persons.First(); person.Interests.Count.ShouldBe(4); }
protected override void SetupNewDatabase(DbContextOptions <IPOContext> dbContextOptions) { using (new IPOContext(dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider)) { _personApiServiceMock = new Mock <IPersonApiService>(); _mainApiPersons = new List <ProCoSysPerson> { new ProCoSysPerson { AzureOid = "12345678-1234-123456789123", FirstName = "F1", LastName = "L1", UserName = "******", Email = "E1" }, new ProCoSysPerson { AzureOid = "12345678-1235-123456789123", FirstName = "F2", LastName = "L2", UserName = "******", Email = "E2" }, new ProCoSysPerson { AzureOid = "12345678-1236-123456789123", FirstName = "F3", LastName = "L3", UserName = "******", Email = "E3" } }; _query = new GetPersonsQuery(_searchString); } }
/// <summary> /// Initializes a new instance of the <see cref="GetPersonsQueryHandler" /> class. /// </summary> /// <param name="repo">Database repository.</param> /// <param name="query">Query instance.</param> public GetPersonsQueryHandler(IPersonRepository repo, GetPersonsQuery query) { _repo = repo; _query = query; }
public void Constructor_SetsProperties() { var dut = new GetPersonsQuery("A"); Assert.AreEqual("A", dut.SearchString); }
/// <summary> /// Build a query handler for getting a list of persons from repo. /// </summary> /// <param name="repo">Target repo.</param> /// <param name="query">Source query.</param> /// <returns>Built query handler.</returns> public static IQueryHandler <GetPersonsQuery, IList <IPerson> > Build(IPersonRepository repo, GetPersonsQuery query) { return(new GetPersonsQueryHandler(repo, query)); }