Example #1
0
        private static async Task AssignTicketAsync(AllocationResponse allocationResponse, Match match)
        {
            var assignmentGroup = new AssignmentGroup();

            assignmentGroup.Assignment = new Assignment
            {
                Connection = $"{allocationResponse.Address}:{allocationResponse.Ports[0].Port}"
            };
            foreach (var ticket in match.Tickets)
            {
                assignmentGroup.TicketIds.Add(ticket.Id);
            }

            var assignTicketsRequest = new AssignTicketsRequest();

            assignTicketsRequest.Assignments.Add(assignmentGroup);

            using var backendChannel = GrpcChannel.ForAddress(BackendUrl);
            var backendClient = new BackendServiceClient(backendChannel);

            await backendClient.AssignTicketsAsync(assignTicketsRequest);
        }
Example #2
0
        public static async Task <bool> AssignAsync(List <Match> matches)
        {
            foreach (var match in matches)
            {
                var ticketIds = new List <string>();
                foreach (var ticket in match.Tickets)
                {
                    ticketIds.Add(ticket.Id);
                }

                // TODO: Add Agones connection
                var conn        = $"{rnd.Next(0, 255)}.{rnd.Next(0, 255)}.{rnd.Next(0, 255)}.{rnd.Next(0, 255)}:2222";
                var assignments = new AssignmentGroup()
                {
                    Assignment = new Assignment()
                    {
                        Connection = conn
                    }
                };
                assignments.TicketIds.AddRange(ticketIds);

                var request = new AssignTicketsRequest();
                request.Assignments.Add(assignments);

                var status = await backendServiceClient.AssignTicketsAsync(request);

                if (status == null)
                {
                    Console.WriteLine("AssignTickets failed for match " + match.MatchId);
                    return(false);
                }

                Console.WriteLine("Assigned server " + conn + " to match " + match.MatchId);
                return(true);
            }
            Console.WriteLine("No matches to assign");
            return(false);
        }