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")); }
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)); }
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)); }