Exemple #1
0
        public async Task <IEnumerable <TableDto> > Handle(GetTablesQuery request, CancellationToken cancellationToken)
        {
            var tables    = _context.Tables.Where(c => c.IsDeleted == false).AsNoTracking();
            var tableDtos = _mapper.Map <IEnumerable <TableDto> >(tables);

            return(tableDtos);
        }
Exemple #2
0
        public async Task DeleteReservation_NewReservation_SuccessfullyMissing()
        {
            IServiceCollection services = new ServiceCollection();

            services.AddHostingDomain()
            .AddHostingApplication()
            .AddHostingInfrastructure("Server=.;Database=RestaurantManagementSystem;Trusted_Connection=True;MultipleActiveResultSets=true", "S0M3 M4G1C UN1C0RNS G3N3R4T3D TH1S S3CR3T");
            var serviceProviderFactory = new DefaultServiceProviderFactory();

            IServiceProvider serviceProvider = serviceProviderFactory.CreateServiceProvider(services);

            IMediator Mediator = serviceProvider.GetService <IMediator>();

            var createTableCommand = new CreateTableCommand();

            createTableCommand.Indoor         = true;
            createTableCommand.Location       = "Do Prozoreca";
            createTableCommand.Name           = "Bestest Table EVER";
            createTableCommand.NumberOfSeats  = 6;
            createTableCommand.SmokingAllowed = true;
            createTableCommand.RestaurantName = "Best Restaurant EVER";
            var createTableOutputModel = await Mediator.Send(createTableCommand);

            var tommorow = DateTime.UtcNow.AddDays(1);

            var addReservationCommand = new AddReservationCommand();

            addReservationCommand.TableId = createTableOutputModel.TableId;
            addReservationCommand.Start   = new DateTime(tommorow.Year, tommorow.Month, tommorow.Day, 13, 30, 0);
            addReservationCommand.Guest   = new Guest("Goshko", "Loshkov", "0900tainamaina");
            var addReservationOutput = await Mediator.Send(addReservationCommand);

            var deleteReservationCommand = new DeleteReservationCommand();

            deleteReservationCommand.ReservationId = addReservationOutput.ReservationId;
            await Mediator.Send(deleteReservationCommand);

            var getTablesQuery  = new GetTablesQuery();
            var getTablesOutput = await Mediator.Send(getTablesQuery);

            var dbTable        = getTablesOutput.Tables.FirstOrDefault(table => table.Id == createTableOutputModel.TableId);
            var targetSchedule = dbTable.GetScheduleForDateTime(addReservationCommand.Start);

            await Assert.ThrowsExceptionAsync <InvalidOperationException>(() =>
            {
                var targetRes = targetSchedule.Reservations.First(res => res.Id == addReservationOutput.ReservationId);
                return(Task.CompletedTask);
            });
        }
Exemple #3
0
        public async Task GetTables()
        {
            IServiceCollection services = new ServiceCollection();

            services.AddHostingDomain()
            .AddHostingApplication()
            .AddHostingInfrastructure("Server=.;Database=RestaurantManagementSystem;Trusted_Connection=True;MultipleActiveResultSets=true", "S0M3 M4G1C UN1C0RNS G3N3R4T3D TH1S S3CR3T");
            var serviceProviderFactory = new DefaultServiceProviderFactory();

            IServiceProvider serviceProvider = serviceProviderFactory.CreateServiceProvider(services);

            IMediator Mediator = serviceProvider.GetService <IMediator>();

            var getTablesQuery  = new GetTablesQuery();
            var getTablesOutput = await Mediator.Send(getTablesQuery);
        }
Exemple #4
0
        public async Task CreateTable_NewTable_SuccessfulRead()
        {
            IServiceCollection services = new ServiceCollection();

            services.AddHostingDomain()
            .AddHostingApplication()
            .AddHostingInfrastructure("Server=.;Database=RestaurantManagementSystem;Trusted_Connection=True;MultipleActiveResultSets=true", "S0M3 M4G1C UN1C0RNS G3N3R4T3D TH1S S3CR3T");
            var serviceProviderFactory = new DefaultServiceProviderFactory();

            IServiceProvider serviceProvider = serviceProviderFactory.CreateServiceProvider(services);

            IMediator Mediator = serviceProvider.GetService <IMediator>();

            var createTableCommand = new CreateTableCommand();

            createTableCommand.Indoor         = true;
            createTableCommand.Location       = "Do Prozoreca";
            createTableCommand.Name           = "Best Table EVER";
            createTableCommand.NumberOfSeats  = 4;
            createTableCommand.SmokingAllowed = true;
            createTableCommand.RestaurantName = "Best Restaurant EVER";
            var createTableOutputModel = await Mediator.Send(createTableCommand);

            var getTablesQuery = new GetTablesQuery();
            var tommorow       = DateTime.UtcNow.AddDays(1);

            getTablesQuery.FreeTablesTargetTime = new DateTime(tommorow.Year, tommorow.Month, tommorow.Day, 13, 0, 0);
            var getTablesOutput = await Mediator.Send(getTablesQuery);

            var dbTable = getTablesOutput.Tables.FirstOrDefault(table => table.Id == createTableOutputModel.TableId);

            Assert.AreEqual(dbTable.NumberOfSeats, createTableCommand.NumberOfSeats);
            Assert.AreEqual(dbTable.Name, createTableCommand.Name);
            Assert.AreEqual(dbTable.Description.IsIndoor, createTableCommand.Indoor);
            Assert.AreEqual(dbTable.Description.Location, createTableCommand.Location);
            Assert.AreEqual(dbTable.Description.AreSmokersAllowed, createTableCommand.SmokingAllowed);
        }
 public async Task <ActionResult <GetTablesOutputModel> > GetTables([FromQuery] GetTablesQuery tablesQuery)
 {
     return(await Send(tablesQuery));
 }