private List <MatchEventModel> CreateEvents() { var events = new List <MatchEventModel>(); foreach (var e in Events) { if (e.Type != EventType.A) { var eventModel = new MatchEventModel { Id = e.Id }; if (e.TeamId == HomeTeam.Id) { eventModel.Player = HomeTeamPlayers.Where(p => p.Id == e.PlayerId).First(); eventModel.ViewType = 0; } else { eventModel.Player = AwayTeamPlayers.Where(p => p.Id == e.PlayerId).First(); eventModel.ViewType = 1; } if (e.Type == EventType.P2 || e.Type == EventType.P10) { eventModel.ResourceId = Resource.Drawable.ic_numeric_2_box_grey600_24dp; } else { if (e.Type == EventType.P5) { eventModel.ResourceId = Resource.Drawable.ic_numeric_2_box_grey600_24dp; } else { if (e.Type == EventType.G) { eventModel.ResourceId = Resource.Drawable.ball; eventModel.IsGoal = true; var assist = Events.FirstOrDefault(a => a.Time == e.Time && a.Type == EventType.A); if (assist != null) { var player = assist.TeamId == HomeTeam.Id ? HomeTeamPlayers.Where(p => p.Id == e.PlayerId).First() : AwayTeamPlayers.Where(p => p.Id == e.PlayerId).First(); eventModel.Assist = new MatchEventModel { ResourceId = Resource.Drawable.ball, Player = player }; } } } } eventModel.Time = e.Time; eventModel.EventMessage = EventMessages.First(em => em.Id == e.EventMessageId); events.Add(eventModel); } } return(events); }
private void LogTeams(Coordinate ballPosition) { var height = 120; var width = 25; var homePlayers = new int?[width, height]; var awayPlayers = new int?[width, height]; HomeTeamPlayers.Execute(p => homePlayers[(int)(p.Location.X * width), (int)(p.Location.Y * height)] = p.Number); AwayTeamPlayers.Execute(p => awayPlayers[(int)(p.Location.X * width), (int)(p.Location.Y * height)] = p.Number); var ballX = (int)(ballPosition.X * width); var ballY = (int)(ballPosition.Y * height); var stringBuilder = new StringBuilder("\n"); stringBuilder.AppendLine(string.Join("", Enumerable.Repeat("_", homePlayers.GetLength(1)).ToArray())); for (var i = 0; i < homePlayers.GetLength(0); ++i) { for (var j = 0; j < homePlayers.GetLength(1); ++j) { if (j == 0 || j == homePlayers.GetLength(1) - 1) { stringBuilder.Append("|"); } if (homePlayers[i, j].HasValue) { var adjust = i == ballX && j == ballY ? 1 : 0; var prepend = i == ballX && j == ballY ? "*_" : "_"; stringBuilder.Append(prepend + homePlayers[i, j]); j = homePlayers[i, j] >= 10 ? j + 2 + adjust : j + 1 + adjust; continue; } else if (awayPlayers[i, j].HasValue) { var adjust = i == ballX && j == ballY ? 1 : 0; var prepend = i == ballX && j == ballY ? "*|" : "|"; stringBuilder.Append("|" + awayPlayers[i, j]); j = awayPlayers[i, j] >= 10 ? j + 2 + adjust : j + 1 + adjust; continue; } stringBuilder.Append(" "); } stringBuilder.AppendLine(); } stringBuilder.AppendLine(string.Join("", Enumerable.Repeat("_", homePlayers.GetLength(1)).ToArray())); Log(stringBuilder.ToString()); }