public void GivenAnIdAndStartDateAllMatchingAnalyticsEventsGetReturned() { var analyticsEvents = EntityHelpers.CreateAnalyticsEvents().ToList(); var org = analyticsEvents[0].Service.Organisation; analyticsEvents[1].Service.Organisation = org; analyticsEvents[1].Service.OrganisationId = org.Id; analyticsEvents[2].Service.Organisation = org; analyticsEvents[2].Service.OrganisationId = org.Id; analyticsEvents[0].TimeStamp = new DateTime(2020, 4, 11, 11, 0, 0); analyticsEvents[1].TimeStamp = new DateTime(2020, 4, 11, 11, 0, 0); analyticsEvents[2].TimeStamp = new DateTime(2020, 1, 11, 11, 0, 0); var startDate = new DateTime(2020, 4, 11, 10, 0, 0); DatabaseContext.AddRange(analyticsEvents); DatabaseContext.SaveChanges(); var analyticsEventQuery = new AnalyticsEventQuery { OrganisationId = org.Id, StartDateTime = startDate }; var gatewayResult = _classUnderTest.GetAnalyticsEvents(analyticsEventQuery); var expectedResult = DatabaseContext.AnalyticsEvents .Where(x => x.Service.OrganisationId == analyticsEventQuery.OrganisationId) .Where(x => x.TimeStamp >= analyticsEventQuery.StartDateTime); gatewayResult.Should().NotBeNull(); gatewayResult.Should().BeEquivalentTo(expectedResult, options => { options.Excluding(ex => ex.Service); return(options); }); gatewayResult.Count.Should().Be(2); }
public List <AnalyticsEventDomain> GetAnalyticsEvents(AnalyticsEventQuery analyticsEventQuery) { try { var analyticsEvents = Context.AnalyticsEvents .Where(x => x.Service.OrganisationId == analyticsEventQuery.OrganisationId) .Where(a => analyticsEventQuery.StartDateTime == null || a.TimeStamp >= analyticsEventQuery.StartDateTime) .Where(a => analyticsEventQuery.EndDateTime == null || a.TimeStamp <= analyticsEventQuery.EndDateTime) .Include(s => s.Service); return(_mapper.ToDomain(analyticsEvents)); } catch (Exception e) { LoggingHandler.LogError(e.Message); LoggingHandler.LogError(e.StackTrace); throw; } }