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); }
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); }