Ejemplo n.º 1
0
        public async Task ReceiveOrders()
        {
            string ConnectionId = Context.ConnectionId;
            string GroupName    = Context.User.FindFirst(ClaimTypes.PrimarySid).Value;

            await Groups.AddToGroupAsync(ConnectionId, Context.User.FindFirst(ClaimTypes.PrimarySid).Value);

            // listar todos os pedidos do usuário, ordenados por mais recente
            var request  = new ListOrdersByUserRequest(Guid.Parse(Context.User.FindFirst(ClaimTypes.PrimarySid).Value));
            var response = await mediator.Send(request, CancellationToken.None);

            await Clients.Group(GroupName).SendAsync("ReceiveOrders", response);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> ChangeStatus(Guid order_id, EOrderStatus status_id)
        {
            try
            {
                string userId   = User.FindFirst(ClaimTypes.PrimarySid).Value;
                var    request  = new UpdateStatusOrderRequest(order_id, status_id);
                var    response = await _mediator.Send(request, CancellationToken.None);

                if (response.Success == true)
                {
                    var requestList  = new ListOrdersByUserRequest(Guid.Parse(userId));
                    var responseList = await _mediator.Send(requestList, CancellationToken.None);

                    await this.ordersHubContext.Clients.Group(userId).SendAsync("ReceiveOrders", responseList);

                    return(Ok(responseList));
                }
                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }