Пример #1
0
        public async Task <ActionResult <PollingResponse> > MatchPolling(PollingRequest request)
        {
            var pollingResponse = new PollingResponse();

            try
            {
                using var channel = GrpcChannel.ForAddress(FrontendUrl);
                var client = new FrontendServiceClient(channel);

                var registeredTicket = await client.GetTicketAsync(new GetTicketRequest { TicketId = request.TicketId });

                pollingResponse.TicketId = request.TicketId;

                if (registeredTicket.Assignment == null)
                {
                    return(pollingResponse);
                }

                pollingResponse.Connection = registeredTicket.Assignment.Connection;

                await client.DeleteTicketAsync(new DeleteTicketRequest { TicketId = request.TicketId });
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }

            return(pollingResponse);
        }
Пример #2
0
        public async Task <ActionResult <MatchResponse> > MatchRequest(MatchRequest request)
        {
            var matchResponse = new MatchResponse();

            try
            {
                using var channel = GrpcChannel.ForAddress(FrontendUrl);
                var client = new FrontendServiceClient(channel);

                var searchFields = new SearchFields();
                searchFields.Tags.Add(request.GameMode.ToString());
                var ticket = new Ticket();
                ticket.SearchFields = searchFields;

                CreateTicketRequest createTicketRequest = new CreateTicketRequest();
                createTicketRequest.Ticket = ticket;

                var response = await client.CreateTicketAsync(createTicketRequest);

                matchResponse.TicketId = response.Id;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }

            return(matchResponse);
        }