public static IEnumerable <IVisitAggregationContext> Countries(int count, int countries, DateTime?start = null, TimeSpan?offset = null, int regionsPerCountry = 3) { start = start ?? new DateTime(2000, 1, 1); offset = offset ?? TimeSpan.Zero; var baseData = new VisitData(); var date = start.Value; return(Enumerable.Range(1, count).Select(i => { var countryName = "C" + ((i / regionsPerCountry) % countries); var regionName = countryName + "_R" + i % regionsPerCountry; var vd = baseData.Clone().SetGeoData(countryName, regionName) .Pages(date, TimeSpan.FromSeconds(3), 3, p => new[] { new PageEventData { PageEventDefinitionId = p.VisitPageIndex.ToGuid(), Value = p.VisitPageIndex * p.VisitPageIndex } }); date = date.Add(offset.Value); vd.InteractionId = i.ToGuid(); return vd.AsContext(); })); }