public async Task WillSetMultipleFromEmptyGeo() { var plugin = new GeoPlugin(await GetResolverAsync(Log)); var ev = new PersistentEvent(); var greenBayEvent = new PersistentEvent(); greenBayEvent.SetEnvironmentInfo(new EnvironmentInfo { IpAddress = GREEN_BAY_IP }); var irvingEvent = new PersistentEvent(); irvingEvent.SetEnvironmentInfo(new EnvironmentInfo { IpAddress = IRVING_IP }); await plugin.EventBatchProcessingAsync(new List<EventContext> { new EventContext(ev), new EventContext(greenBayEvent), new EventContext(irvingEvent) }); Assert.Equal(GREEN_BAY_COORDINATES, greenBayEvent.Geo); var location = greenBayEvent.GetLocation(); Assert.Equal("US", location?.Country); Assert.Equal("WI", location?.Level1); Assert.Equal("Green Bay", location?.Locality); Assert.Equal(IRVING_COORDINATES, irvingEvent.Geo); location = irvingEvent.GetLocation(); Assert.Equal("US", location?.Country); Assert.Equal("TX", location?.Level1); Assert.Equal("Irving", location?.Locality); }
public static PersistentEvent ToSessionStartEvent(this PersistentEvent source, DateTime? lastActivityUtc = null, bool? isSessionEnd = null, bool hasPremiumFeatures = true) { var startEvent = new PersistentEvent { SessionId = source.SessionId, Date = source.Date, Geo = source.Geo, OrganizationId = source.OrganizationId, ProjectId = source.ProjectId, Type = Event.KnownTypes.Session, Value = 0 }; var ei = source.GetEnvironmentInfo(); if (ei != null) { startEvent.SetEnvironmentInfo(new EnvironmentInfo { Architecture = ei.Architecture, CommandLine = ei.CommandLine, Data = ei.Data, InstallId = ei.InstallId, IpAddress = ei.IpAddress, MachineName = ei.MachineName, OSName = ei.OSName, OSVersion = ei.OSVersion, ProcessId = ei.ProcessId, ProcessName = ei.ProcessName, ProcessorCount = ei.ProcessorCount, RuntimeVersion = ei.RuntimeVersion, TotalPhysicalMemory = ei.TotalPhysicalMemory }); } var ri = source.GetRequestInfo(); if (ri != null) { startEvent.AddRequestInfo(new RequestInfo { ClientIpAddress = ri.ClientIpAddress, Data = ri.Data, Host = ri.Host, HttpMethod = ri.HttpMethod, IsSecure = ri.IsSecure, Port = ri.Port, Path = ri.Path, Referrer = ri.Referrer, UserAgent = ri.UserAgent }); } startEvent.SetVersion(source.GetVersion()); startEvent.SetUserIdentity(source.GetUserIdentity()); if (lastActivityUtc.HasValue) startEvent.UpdateSessionStart(lastActivityUtc.Value, isSessionEnd.GetValueOrDefault()); if (hasPremiumFeatures) startEvent.CopyDataToIndex(); return startEvent; }
public async Task WillSetLocationFromEnvironmentInfoInfo() { var plugin = new GeoPlugin(await GetResolverAsync(Log)); var ev = new PersistentEvent(); ev.SetEnvironmentInfo(new EnvironmentInfo { IpAddress = $"127.0.0.1,{GREEN_BAY_IP}" }); await plugin.EventBatchProcessingAsync(new List<EventContext> { new EventContext(ev) }); Assert.NotNull(ev.Geo); var location = ev.GetLocation(); Assert.Equal("US", location?.Country); Assert.Equal("WI", location?.Level1); Assert.Equal("Green Bay", location?.Locality); }