Example #1
0
        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);
            }
        }
Example #4
0
        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);
            }
        }
Example #8
0
 /// <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;
 }
Example #9
0
        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));
 }