public override async Task <bool> Delete(int id)
        {
            if (id <= 0)
            {
                throw new InvalidOperationException();
            }

            IReadOnlyCollection <RestaurantCuisineType> toDelete =
                new RestaurantCuisineType[0];

            using (var cp = ContextProviderFactory.Create())
            {
                toDelete =
                    await cp.GetTable <RestaurantCuisineType>()
                    .Where(t => t.RestaurantId == id)
                    .ToArrayAsync();
            }

            foreach (var restaurantCuisineTypes in toDelete)
            {
                await _cuisineTypesService.Delete(restaurantCuisineTypes.RestaurantId, restaurantCuisineTypes.CuisineTypeId);
            }

            IReadOnlyCollection <RestaurantDenyType> toDelete2 =
                new RestaurantDenyType[0];

            using (var cp = ContextProviderFactory.Create())
            {
                toDelete2 =
                    await cp.GetTable <RestaurantDenyType>()
                    .Where(t => t.RestaurantId == id)
                    .ToArrayAsync();
            }

            foreach (var restaurantDenyType in toDelete2)
            {
                await _denyTypesService.Delete(restaurantDenyType.RestaurantId, restaurantDenyType.DenyTypeId);
            }

            await base.Delete(id);

            return(true);
        }
        public async Task <IActionResult> DeleteDenyTypeById(int restaurantId, int[] denyTypeIds)
        {
            if (restaurantId <= 0)
            {
                return(BadRequest());
            }

            int count = 0;

            foreach (var denyTypeId in denyTypeIds)
            {
                var res =
                    await _restaurantDenyTypesService.Delete(restaurantId, denyTypeId);

                count += res ? 1 : 0;
            }

            return(Ok(count == denyTypeIds.Length));
        }