def __getPlayerPartsMinutes(clock, game, parts, startPart = 0, minuteOut = 0, endPart = 9999, minuteIn = 0, player = None): gameMinute = clock.Time.TotalMinutes timeplayed = 0 for part in parts: startPartGameEvent = next((g for g in game.OrderedGameEvents if g.Event.Abbreviation == FootballEvents.Start.Abbreviation and g.GamePart == part.Number), None) if not startPartGameEvent: continue endPartGameEvent = next((g for g in game.OrderedGameEvents if g.Event.Abbreviation == FootballEvents.Stop.Abbreviation and g.GamePart == part.Number), clock) flag = False if minuteIn and startPart == part.Number: #entrou nesta parte timeplayed += ((endPartGameEvent.Time.TotalMinutes - minuteIn) if (endPartGameEvent.Time.TotalMinutes - minuteIn) > 0 else 0) flag = True if minuteOut and endPart == part.Number: #saiu nesta parte timeplayed += (minuteOut - startPartGameEvent.Time.TotalMinutes) flag = True if part.Number >= startPart and part.Number <= endPart and not flag: # outras partes em q jogou timeplayed += (endPartGameEvent.Time.TotalMinutes - startPartGameEvent.Time.TotalMinutes) return TimeSpan.FromMinutes(timeplayed) if timeplayed else TimeSpan.Zero