示例#1
0
        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);
        }
示例#2
0
        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());
        }