public async Task AddTable_WithCorrectData_ShouldCreateSucessfully()
        {
            var errorMessage = "Table service AddTable() method is not working correctly.";
            var context      = ReserveTableDbContextInMemoryFactory.InitializeContext();

            this.tableService = new TableService(context);
            await SeedData(context);

            AddTableBindingModel model = new AddTableBindingModel
            {
                SeatsCount = 5
            };

            RestaurantServiceModel restaurant = new RestaurantServiceModel
            {
                Id            = "1",
                Address       = "Ivan Vazov",
                AverageRating = 10,
                Name          = "Happy",
                PhoneNumber   = "08888888888",
                Photo         = "src/happy-photo.jpg",
                CityId        = "1"
            };

            var actualResult = await this.tableService.AddTable(model, restaurant);

            Assert.True(actualResult, errorMessage);
        }
        public async Task AddTable_InInvalidRestaurant_ShouldNotCreate()
        {
            var context = ReserveTableDbContextInMemoryFactory.InitializeContext();

            this.tableService = new TableService(context);
            await SeedData(context);

            AddTableBindingModel model = new AddTableBindingModel
            {
                SeatsCount = 5
            };

            RestaurantServiceModel restaurant = new RestaurantServiceModel
            {
                Id            = "3",
                Address       = "Ivan Vazov",
                AverageRating = 10,
                Name          = "Happy",
                PhoneNumber   = "08888888888",
                Photo         = "src/happy-photo.jpg",
                CityId        = "1"
            };

            await Assert.ThrowsAsync <ArgumentNullException>(() => tableService.AddTable(model, restaurant));
        }
예제 #3
0
        public async Task <IActionResult> Add(string city, string restaurant, AddTableBindingModel model)
        {
            RestaurantServiceModel restaurantFromDb = await restaurantService.GetRestaurantByNameAndCity(city, restaurant);

            if (ModelState.IsValid)
            {
                await tablesService.AddTable(model, restaurantFromDb);
            }

            return(this.Redirect($"/Tables/{city}/{restaurant}"));
        }
예제 #4
0
        public async Task <bool> AddTable(AddTableBindingModel model, RestaurantServiceModel restaurantServiceModel)
        {
            var table = new Table
            {
                SeatsCount   = model.SeatsCount,
                RestaurantId = restaurantServiceModel.Id
            };

            ValidateTable(table);
            CheckIfRestaurantExists(restaurantServiceModel);

            await dbContext.Tables.AddAsync(table);

            var result = await dbContext.SaveChangesAsync();

            return(result > 0);
        }