コード例 #1
0
        public async Task <GetStatisticsDto> GetStatistics()
        {
            var query  = GetStatisticsQuery.Create();
            var result = await _mediator.Send(query);

            return(result);
        }
コード例 #2
0
        private async Task <SaleStatisticsViewModel> QueryStatistics()
        {
            var query = new GetStatisticsQuery();

            var response = await _mediator.Send(query);

            return(_mapper.Map <GetStatisticsQueryResponse, SaleStatisticsViewModel>(response));
        }
コード例 #3
0
        public GetStatisticsQueryTestsFixtures()
        {
            Accounts = new List <Account>
            {
                new Account(),
                new Account()
            };

            LegalEntities = new List <LegalEntity>
            {
                new LegalEntity(),
                new LegalEntity(),
                new LegalEntity(),
                new LegalEntity(),
            };

            PayeSchemes = new List <Paye>
            {
                new Paye(),
                new Paye(),
                new Paye(),
                new Paye()
            };

            Agreements = new List <EmployerAgreement>
            {
                new EmployerAgreement(),
                new EmployerAgreement {
                    StatusId = EmployerAgreementStatus.Signed
                },
                new EmployerAgreement {
                    StatusId = EmployerAgreementStatus.Signed
                },
                new EmployerAgreement {
                    StatusId = EmployerAgreementStatus.Signed
                },
                new EmployerAgreement {
                    StatusId = EmployerAgreementStatus.Signed
                },
                new EmployerAgreement {
                    StatusId = EmployerAgreementStatus.Signed
                }
            };

            AccountsDb = new Mock <EmployerAccountsDbContext>();

            AccountsDb.Setup(d => d.Accounts).Returns(new DbSetStub <EmployerAccounts.Models.Account.Account>(Accounts));
            AccountsDb.Setup(d => d.LegalEntities).Returns(new DbSetStub <LegalEntity>(LegalEntities));
            AccountsDb.Setup(d => d.Payees).Returns(new DbSetStub <Paye>(PayeSchemes));
            AccountsDb.Setup(d => d.Agreements).Returns(new DbSetStub <EmployerAgreement>(Agreements));

            Handler = new GetStatisticsQueryHandler(new Lazy <EmployerAccountsDbContext>(() => AccountsDb.Object));
            Query   = new GetStatisticsQuery();

            QueryFutureManager.AllowQueryBatch = false;
        }
コード例 #4
0
        public void WhenRequestingStatistics_ThenStatisticsAreReturned()
        {
            var date1      = new DateTime(2020, 5, 23, 23, 58, 1, DateTimeKind.Utc);
            var date2      = new DateTime(2020, 5, 24, 11, 03, 1, DateTimeKind.Utc);
            var date3      = new DateTime(2020, 5, 25, 0, 0, 0, DateTimeKind.Utc);
            var givenMedia = new[]
            {
                new MediaInstance {
                    Id = "media1", Timestamp = date1
                },
                new MediaInstance {
                    Id = "media2", Timestamp = date1
                },
                new MediaInstance {
                    Id = "media3", Timestamp = date2
                },
                new MediaInstance {
                    Id = "media4", Timestamp = date2
                },
                new MediaInstance {
                    Id = "media5", Timestamp = date2
                },
            };

            var expectedResult = new GetStatisticsDto {
                Data = new List <List <long> >
                {
                    new List <long> {
                        (long)(date1.Date - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds, 2
                    },
                    new List <long> {
                        (long)(date2.Date - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds, 5
                    },
                    new List <long> {
                        (long)(date3.Date - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds, 5
                    }
                }
            };

            IApplicationContext context = CreateMockApplicationContext(givenMedia);
            var query = GetStatisticsQuery.Create();
            IRequestHandler <GetStatisticsQuery, GetStatisticsDto> sut = new GetStatisticsQueryHandler(context, _timeProviderMock.Object);
            var actualResult = sut.Handle(query, CancellationToken.None).Result;

            actualResult.Should().BeEquivalentTo(expectedResult);
        }
コード例 #5
0
        public async Task <ICollection <SiteStatistic> > Handle(GetStatisticsQuery request, CancellationToken cancellationToken)
        {
            // todo add paging
            var sites = await _siteRepository.GetManyAsync(new EmptyFilterSpecification <Site>());

            var statistic = new List <SiteStatistic>();

            foreach (var site in sites)
            {
                var health = await _siteHealthCalculationStrategy.GetHealthAsync(site);

                statistic.Add(new SiteStatistic {
                    SiteName = site.Name, SiteHealth = health
                });
            }

            return(statistic);
        }
コード例 #6
0
        public void WhenRequestingStatisticsFromEmptyList_ThenListWithoutInstancesIsReturned()
        {
            var date3 = new DateTime(2020, 5, 25, 15, 34, 1, DateTimeKind.Utc);
            IEnumerable <MediaInstance> givenMedia = new List <MediaInstance>();

            var expectedResult = new GetStatisticsDto {
                Data = new List <List <long> >
                {
                    new List <long> {
                        (long)(date3.Date - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds, 0
                    }
                }
            };

            IApplicationContext context = CreateMockApplicationContext(givenMedia);
            var query = GetStatisticsQuery.Create();
            IRequestHandler <GetStatisticsQuery, GetStatisticsDto> sut = new GetStatisticsQueryHandler(context, _timeProviderMock.Object);
            var actualResult = sut.Handle(query, CancellationToken.None).Result;

            actualResult.Should().BeEquivalentTo(expectedResult);
        }