public async Task <IActionResult> GetProviderIpStats(DomainProviderDateRangeRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ErrorResponse(ModelState.Values)));
            }

            return(Ok(await _aggregateReportService.GetIpStatsDto(request.Domain, request.StartDate, request.EndDate, request.Provider, request.Page.Value, request.PageSize.Value, request.IpFilter, request.HostFilter, request.CategoryFilter)));
        }
コード例 #2
0
        public async Task CheckGetIpStatsDtoReturnsIpStatsDto()
        {
            string domain             = "ncsc.gov.uk";
            string ip                 = "192.168.72.11";
            string hostname           = "hostName";
            int    totalHostnameCount = 100;
            int    totalEmails        = 1111;

            string provider = "testProvider";
            string alias    = "testAlias";
            string markdown = "testMarkdown";

            A.CallTo(() => _providerDetailsProvider.GetProviderAliasIn(alias))
            .Returns(provider);
            A.CallTo(() => _providerDetailsProvider.GetProviderAliasOut(provider))
            .Returns(alias);
            A.CallTo(() => _providerDetailsProvider.GetProviderMarkdown(provider))
            .Returns(markdown);

            IpStats ipStat = new IpStats(domain, provider, ip, hostname, 0, 1, 2,
                                         3, 4, 5, 6, 7,
                                         8, 9, 10, 11, 30, 31, 32, 33, 34, 35, 100, 36, 37, 38, 39, 12,
                                         13, 14, 15, 16, 17,
                                         18, 19, 20, 21, 22, 23,
                                         24, 25, 26, 27, 28);

            IpStatsResult ipStatsResult = new IpStatsResult(new List <IpStats>()
            {
                ipStat
            }, totalHostnameCount, totalEmails);

            A.CallTo(() => _aggregateReportApiDao.GetIpStats(domain, A <DateTime> ._, A <DateTime> ._, provider, A <int> ._, A <int> ._, null, null, null))
            .Returns(Task.FromResult(ipStatsResult));

            IpStatsDto ipStatsDto = new IpStatsDto(domain, provider, ip, hostname, 0, 1, 2,
                                                   3, 4, 5, 6, 7,
                                                   8, 9, 10, 11, 30, 31, 32, 33, 34, 35, 100, 36, 37, 38, 39, 12,
                                                   13, 14, 15, 16, 17,
                                                   18, 19, 20, 21, 22, 23,
                                                   24, 25, 26, 27, 28, alias, markdown);

            A.CallTo(() => _ipStatsMapper.Map(ipStat, alias, markdown))
            .Returns(ipStatsDto);

            IpStatsDtoResult ipStatsDtoResult = await _aggregateReportService.GetIpStatsDto(domain, DateTime.MinValue, DateTime.MaxValue, alias, 0, 0);

            Assert.AreSame(ipStatsDto, ipStatsDtoResult.IpStats[0]);
            Assert.AreEqual(totalHostnameCount, ipStatsDtoResult.TotalHostnameCount);
            Assert.AreEqual(totalEmails, ipStatsDtoResult.TotalEmails);
        }