예제 #1
0
        public async Task <IActionResult> AddOrder(int ownerId,
                                                   [FromForm] OrderForAddingDto orderForAddingDto)
        {
            var owners = await _repo.GetAll();

            if (!owners.Any(i => i.Id == ownerId))
            {
                return(Unauthorized());
            }

            var ownerFromRepo = await _repo.Get(ownerId);

            if (await _repo.NumberExists(orderForAddingDto.Number))
            {
                return(BadRequest("Number already exists"));
            }

            var orderToCreate = _mapper.Map <Order>(orderForAddingDto);

            ownerFromRepo.Orders.Add(orderToCreate);

            if (await _repo.SaveAll())
            {
                return(CreatedAtRoute("GetPhoto", new { controller = "Clients", id = orderToCreate.Id },
                                      orderToCreate));
            }
            return(BadRequest("Could not add the photo"));
        }
예제 #2
0
        public async Task <IActionResult> AddOrder([FromForm] OrderForAddingDto orderForAddingDto)
        {
            if (await _repo.NumberExists(orderForAddingDto.Number))
            {
                return(BadRequest("Number already exists"));
            }

            var orderToCreate = _mapper.Map <Order>(orderForAddingDto);

            var createdOrder = await _repo.AddOrder(orderToCreate);

            var orderToReturn = _mapper.Map <OrderForDetailedDto>(createdOrder);

            return(CreatedAtRoute("GetOrder", new { id = createdOrder.Id }, orderToReturn));
        }
예제 #3
0
        public async Task <IActionResult> Create([FromBody] OrderForAddingDto order)
        {
            var dailyChoice = await _dailyChoiceRepository.GetById(order.DailyChoiceId);

            var menu = await _menuRepository.GetById(order.MenuId);

            var ordersByUser = await _orderRepository.GetOrdersByUser(order.UserId);

            // Check whether users already ordered or not
            if (_orderRepository.IsOrdered(ordersByUser, order.DailyChoiceId))
            {
                return(BadRequest("You have already ordered today."));
            }

            // Check Menu is whether in the choices
            if (!dailyChoice.MenuIds.Contains(menu.Id))
            {
                return(BadRequest("This menu is not a choice today."));
            }

            // Check whether the order is overdue or not
            if (_orderRepository.IsOverdue(dailyChoice.dateCreated, DUE_HOUR))
            {
                return(BadRequest("Overdue."));
            }

            // Increase the amount of order into 1
            dailyChoice.amountOfChoices += 1;
            _dailyChoiceRepository.Update(dailyChoice);

            _orderRepository.Add(_mapper.Map <Order>(order));

            await _unitOfWork.Commit();

            return(Ok(order));
        }