private static IEnumerable <Round> CreateRoundsFrom(IReadOnlyList <Team> participants) { var result = new List <Round>(); if (!participants.Any()) { return(result); } //első forduló var round = new Round(1); for (var i = 0; i < participants.Count / 2; i++) { round.AddFixture(new Fixture(participants[i], participants[(participants.Count - 1) - i])); } result.Add(round); //további fordulók var numberOfRounds = participants.Count - 1; var numberofMatchesInOneRound = participants.Count / 2; var listToShift = participants.Skip(1).ToList(); for (var i = 1; i < numberOfRounds; i++) { round = new Round(i + 1); var shiftedList = ShiftListItems(listToShift, i); round.AddFixture(new Fixture(participants[0], shiftedList[(shiftedList.Count) - 1])); for (var j = 1; j < numberofMatchesInOneRound; j++) { round.AddFixture(new Fixture(shiftedList[j - 1], shiftedList[(shiftedList.Count) - j - 1])); } result.Add(round); } return(result); }