public async Task RespondToOrderAsync(int orderId, int workerId, WorkerRespondOrderInput workerData) { var order = await ordersRepository.FirstOrDefaultAsync(o => o.Id == orderId); if (order == null) { throw new BadInputException("order with this id was not found"); } if (order.ClientId == workerId) { throw new BadInputException("can not respond to self placed order"); } if (order.StatusId != (int)OrdersStatuses.Awaiting) { throw new BadInputException("can't respond to this order, order status is not \"awaiting\""); } var respondedWorker = mapper.Map <RespondedWorkers>(workerData); respondedWorker.OrderId = orderId; respondedWorker.WorkerId = workerId; await respondedWorkersRepository.InsertAsync(respondedWorker); }
public async Task <IActionResult> RespondToOrder([FromRoute(Name = "id")] int orderId, [FromBody] WorkerRespondOrderInput workerData) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } int workerId = User.GetUserId(); await ordersService.RespondToOrderAsync(orderId, workerId, workerData); return(Ok()); }