Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 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;
     }
 }