private IEnumerable<GameStats> FilterGames(IEnumerable<GameStats> games)
		{
			var selectedGameMode = (GameMode)ComboboxGameMode.SelectedItem;
			var noteFilter = TextboxNoteFilter.Text;
			var comboboxString = (TimeFrame)ComboboxTime.SelectedItem;

			var endTime = DateTime.Today + new TimeSpan(0, 23, 59, 59, 999);
			var startTime = DateTime.Today;

			switch(comboboxString)
			{
				case Today:
					endTime = DateTime.Now;
					break;
				case Yesterday:
					startTime -= new TimeSpan(1, 0, 0, 0);
					endTime -= new TimeSpan(1, 0, 0, 0);
					break;
				case Last24Hours:
					startTime = DateTime.Now - new TimeSpan(1, 0, 0, 0);
					endTime = DateTime.Now;
					break;
				case ThisWeek:
					startTime -= new TimeSpan(((int)(startTime.DayOfWeek) - 1), 0, 0, 0);
					break;
				case PreviousWeek:
					startTime -= new TimeSpan(7 + ((int)(startTime.DayOfWeek) - 1), 0, 0, 0);
					endTime -= new TimeSpan(((int)(endTime.DayOfWeek)), 0, 0, 0);
					break;
				case Last7Days:
					startTime -= new TimeSpan(7, 0, 0, 0);
					break;
				case ThisMonth:
					startTime -= new TimeSpan(startTime.Day - 1, 0, 0, 0);
					break;
				case PreviousMonth:
					startTime -= new TimeSpan(startTime.Day - 1 + DateTime.DaysInMonth(startTime.AddMonths(-1).Year, startTime.AddMonths(-1).Month), 0,
					                          0, 0);
					endTime -= new TimeSpan(endTime.Day, 0, 0, 0);
					break;
				case ThisYear:
					startTime -= new TimeSpan(startTime.DayOfYear - 1, 0, 0, 0);
					break;
				case PreviousYear:
					startTime -= new TimeSpan(startTime.DayOfYear - 1 + (DateTime.IsLeapYear(startTime.Year) ? 366 : 365), 0, 0, 0);
					endTime -= new TimeSpan(startTime.DayOfYear, 0, 0, 0);
					break;
				case AllTime:
					startTime = new DateTime();
					break;
			}

			return
				games.Where(
				            g =>
				            (g.GameMode == selectedGameMode || selectedGameMode == GameMode.All) && g.StartTime >= startTime
				            && g.StartTime <= endTime
				            && (g.Note == null && noteFilter == string.Empty
				                || g.Note != null && g.Note.ToLowerInvariant().Contains(noteFilter.ToLowerInvariant())));
		}
        private Tuple<DateTime, DateTime> GetFilterTimes(TimeFrame tf)
        {
            var startTime = DateTime.Today;
            var endTime = DateTime.Today + new TimeSpan(0, 23, 59, 59, 999);

            switch (TimeFrame)
            {
                case TimeFrame.Today:
                    endTime = DateTime.Now;
                    break;
                case TimeFrame.Yesterday:
                    startTime -= new TimeSpan(1, 0, 0, 0);
                    endTime -= new TimeSpan(1, 0, 0, 0);
                    break;
                case TimeFrame.Last24Hours:
                    startTime = DateTime.Now - new TimeSpan(1, 0, 0, 0);
                    endTime = DateTime.Now;
                    break;
                case TimeFrame.ThisWeek:
                    startTime -= new TimeSpan(((int)(startTime.DayOfWeek) - 1), 0, 0, 0);
                    break;
                case TimeFrame.PreviousWeek:
                    startTime -= new TimeSpan(7 + ((int)(startTime.DayOfWeek) - 1), 0, 0, 0);
                    endTime -= new TimeSpan(((int)(endTime.DayOfWeek)), 0, 0, 0);
                    break;
                case TimeFrame.Last7Days:
                    startTime -= new TimeSpan(7, 0, 0, 0);
                    break;
                case TimeFrame.ThisMonth:
                    startTime -= new TimeSpan(startTime.Day - 1, 0, 0, 0);
                    break;
                case TimeFrame.PreviousMonth:
                    startTime -= new TimeSpan(startTime.Day - 1 + DateTime.DaysInMonth(startTime.AddMonths(-1).Year, startTime.AddMonths(-1).Month), 0, 0, 0);
                    endTime -= new TimeSpan(endTime.Day, 0, 0, 0);
                    break;
                case TimeFrame.ThisYear:
                    startTime -= new TimeSpan(startTime.DayOfYear - 1, 0, 0, 0);
                    break;
                case TimeFrame.PreviousYear:
                    startTime -= new TimeSpan(startTime.DayOfYear - 1 + (DateTime.IsLeapYear(startTime.Year) ? 366 : 365), 0, 0, 0);
                    endTime -= new TimeSpan(startTime.DayOfYear, 0, 0, 0);
                    break;
                default:
                    startTime = new DateTime();
                    break;
            }

            return new Tuple<DateTime, DateTime>(startTime, endTime);
        }