Beispiel #1
0
        public ParkingInfo GetParkingInfo(string parkingName)
        {
            var query = new GetParkingInfoQuery {
                ParkingName = parkingName
            };

            return(_queryHandler.Handle(query));
        }
        public async Task Should_GetParkingInfo()
        {
            // Arrange
            var LHandleParkingInfo = new GetParkingInfoQueryHandler(FMainDbContext);
            var LRequest           = new GetParkingInfoQuery
            {
                ParkingName = "Poznan Plaza"
            };

            // Act
            var LResult = await LHandleParkingInfo.Handle(LRequest, CancellationToken.None);

            // Assert
            LResult.Name.Should().Be("Poznan Plaza");
            LResult.IsOpened.Should().BeFalse();
        }
Beispiel #3
0
        public ParkingInfo Handle(GetParkingInfoQuery query)
        {
            var parking = _dbContext.Set <Models.Parking>()
                          .Include(p => p.Places)
                          .FirstOrDefault(p => p.Name == query.ParkingName);

            if (parking == null)
            {
                throw new Exception($"Cannot find parking '{query.ParkingName}'.");
            }

            return(new ParkingInfo
            {
                Name = parking.Name,
                IsOpened = parking.IsOpened,
                MaximumPlaces = parking.Places.Count,
                AvailablePlaces = parking.IsOpened ? parking.Places.Count(pp => pp.IsFree) : 0
            });
        }