Ejemplo n.º 1
0
        public int Create(CreateDishDto dto)
        {
            var dish = _mapper.Map <Dish>(dto);

            _dbContext.Dishes.Add(dish);
            _dbContext.SaveChanges();

            return(dish.Id);
        }
Ejemplo n.º 2
0
        public int Create(int restaurantId, CreateDishDto dto)
        {
            var restaurant = GetRestaurantById(restaurantId);
            var dishEntity = _mapper.Map <Dish>(dto);

            dishEntity.RestaurantId = restaurantId;
            _dbContext.Dishes.Add(dishEntity);
            _dbContext.SaveChanges();
            return(dishEntity.Id);
        }
Ejemplo n.º 3
0
        public string Create([FromBody] CreateDishDto dto)
        {
            if (ModelState.IsValid)
            {
                if (!_dishService.GetAll().Any(x => x.NameOfDish == dto.NameOfDish))
                {
                    int id = _dishService.Create(dto);
                    return(JsonConvert.SerializeObject("Dish added successfully!"));
                }
            }

            return(JsonConvert.SerializeObject("Something went wrong!"));
        }
Ejemplo n.º 4
0
        public async Task <ActionResult> AddDish(CreateDishDto request)
        {
            var response = await _menuService.Create(request);

            if (response.Succeeded == true)
            {
                // Uri uri = new Uri($"http://localhost:5000/api/menu/{response.Entities[]}");
                return(Ok(response));
            }
            else
            {
                return(BadRequest());
            }
        }
Ejemplo n.º 5
0
        public ActionResult <DishDto> CreateDish(CreateDishDto dishDto)
        {
            Dish dish = new(){
                Name        = dishDto.Name,
                Toppings    = dishDto.Toppings,
                Price       = dishDto.Price,
                CreatedDate = DateTimeOffset.UtcNow
            };

            _context.Add(dish);
            _context.SaveChanges();

            return(CreatedAtAction(nameof(GetDish), new { id = dish.Id }, dish.AsDto()));
        }
Ejemplo n.º 6
0
        public async Task <IResponseDto> Create(CreateDishDto request)
        {
            IDictionary <Guid, IngredientOnStock> usedIngredients = new Dictionary <Guid, IngredientOnStock>();
            bool isAvailable = true;
            var  dishIngredientsEnumerator = request.DishIngredients.GetEnumerator();

            while (dishIngredientsEnumerator.MoveNext() && isAvailable == true)
            {
                double quantity = dishIngredientsEnumerator.Current.Value;

                var usedIngredient = await _unityOfWork.IngredientsRepository.Get(dishIngredientsEnumerator.Current.Key);

                if (usedIngredient == null)
                {
                    return(null);
                }

                usedIngredients.Add(usedIngredient.Id, usedIngredient);
                if (usedIngredient.Quantity < quantity)
                {
                    isAvailable = false;
                }
            }
            dishIngredientsEnumerator.Dispose();

            Dish createdDish = Dish.Create(request.Name, request.Price, isAvailable);
            var  id          = createdDish.Id;
            await _unityOfWork.DishesRepository.Add(createdDish);

            dishIngredientsEnumerator = request.DishIngredients.GetEnumerator();
            while (dishIngredientsEnumerator.MoveNext())
            {
                DishIngredient link = new DishIngredient()
                {
                    Dish       = createdDish,
                    Ingredient = usedIngredients[dishIngredientsEnumerator.Current.Key],
                    Quantity   = dishIngredientsEnumerator.Current.Value
                };
                await _unityOfWork.DishIngredientsRepository.Add(link);

                Console.WriteLine(link);
            }
            dishIngredientsEnumerator.Dispose();

            await _unityOfWork.CommitAsync();

            var dishDto = _mapper.Map <DishDto>(createdDish);

            return(SuccessResponseDto.Create(dishDto));
        }
Ejemplo n.º 7
0
        public int CreateDish(int restaurantId, CreateDishDto dto)
        {
            var restaurant = _context.Restaurants.FirstOrDefault(r => r.Id == restaurantId);

            if (restaurant is null)
            {
                throw new NotFoundException("Restaurant not found");
            }

            var dishEntity = _mapper.Map <Dish>(dto);

            dishEntity.RestaurantId = restaurantId;
            _context.Dishes.Add(dishEntity);
            _context.SaveChanges();

            return(dishEntity.Id);
        }
Ejemplo n.º 8
0
        public int Create(int restaurantId, CreateDishDto dto)
        {
            var restaurant = GetRestaurantById(restaurantId);

            var authorizationResult = _authorizationService.AuthorizeAsync(_userContextService.User, restaurant,
                                                                           new ResourceOperationRequirement(ResourceOperation.Create)).Result;

            if (!authorizationResult.Succeeded)
            {
                throw new ForbidException();
            }

            var dish = _mapper.Map <Dish>(dto);

            dish.RestaurantId = restaurantId;

            _dbContext.Dishes.Add(dish);
            _dbContext.SaveChanges();

            return(dish.Id);
        }
Ejemplo n.º 9
0
        public ActionResult Post([FromRoute] int restaurantId, [FromBody] CreateDishDto dto)
        {
            var newDishId = _dishService.Create(restaurantId, dto);

            return(Created($"api/restaurant/{restaurantId}/dish/{newDishId}", null));
        }