public async Task <IActionResult> Get([FromQuery] GetCustomerOrderDetailQuery query)
        {
            var result = await _mediator.Send(query);

            return(Ok(new HttpServiceResponseBase <OrderDetailDto> {
                Data = result, Code = HttpStatusCode.OK
            }));
        }
示例#2
0
        public async Task <IActionResult> GetOrder(int orderId)
        {
            FirebaseUser user = HttpContext.GetFirebaseUser();
            GetCustomerOrderDetailQuery model = new GetCustomerOrderDetailQuery()
            {
                firebaseId = user.UserId,
                orderId    = orderId
            };
            ResultWrapper <GetCustomerOrderDetailOutput> result = await _mediator.Send(model);

            return(Ok(result));
        }
        public async Task <ResultWrapper <GetCustomerOrderDetailOutput> > Handle(GetCustomerOrderDetailQuery request, CancellationToken cancellationToken)
        {
            ResultWrapper <GetCustomerOrderDetailOutput> result = new ResultWrapper <GetCustomerOrderDetailOutput>();


            TUser tUser = await _dbContext.TUser.FirstOrDefaultAsync(x => x.FireBaseId == request.firebaseId);

            if (tUser == null)
            {
                result.Status  = false;
                result.Message = "cannot find customer!";
                return(result);
            }

            var tData = await _dbContext.TOrder
                        .Include(x => x.TSupplier)
                        .Include(x => x.TOrderDetails).ThenInclude(x => x.TFood)
                        .FirstOrDefaultAsync(x => x.Id == request.orderId && x.TUserId == tUser.Id);

            if (tData == null)
            {
                result.Status  = false;
                result.Message = "this order doesn't exists";
                return(result);
            }
            result.Status = true;
            result.Result = new GetCustomerOrderDetailOutput()
            {
                Id                = tData.Id,
                Title             = tData.Title,
                TotalPayablePrice = tData.TotalPayablePrice,
                Restaurant        = tData.TSupplier.RestaurantName,
                Date              = tData.Date,
                list              = tData.TOrderDetails.Select(x => new GetCustomerOrderDetailOutput.OrderDetailItem()
                {
                    Id        = x.Id,
                    FoodId    = x.TFoodId,
                    FoodName  = x.TFood.Title,
                    Amount    = x.Amount,
                    UnitPrice = x.UnitPrice,
                    RowPrice  = x.RowPrice
                }).ToList()
            };

            return(result);
        }
示例#4
0
        public async Task <IActionResult> SubmitOrder([FromBody] CustomerSubmitOrderCommand model)
        {
            FirebaseUser user = HttpContext.GetFirebaseUser();

            model.firebaseId = user.UserId;
            ResultWrapper <CustomerSubmitOrderOutput> submitResult = await _mediator.Send(model);

            if (!submitResult.Status)
            {
                return(Ok(submitResult));
            }

            int orderId = submitResult.Result.Id;
            GetCustomerOrderDetailQuery detailModel = new GetCustomerOrderDetailQuery()
            {
                firebaseId = user.UserId,
                orderId    = orderId
            };
            ResultWrapper <GetCustomerOrderDetailOutput> result = await _mediator.Send(detailModel);

            return(Ok(result));
        }
        public async Task <IActionResult> Get([FromQuery] GetCustomerOrderDetailQuery query)
        {
            var response = await _mediator.Send(query);

            return(Result(response, HttpStatusCode.OK));
        }