public void GetStatistic_ParameterPropertyIsNull_Expetion()
        {
            //Given
            var parameters = new StatisticParameters();

            //When,Then
            Assert.ThrowsException <ArgumentNullException>(() => { StatisticService.GetStatistic(parameters); });
        }
        public IActionResult GetCountDeasesByCountry([FromQuery] StatisticParameters parameters)
        {
            PagedList <StatisticModel> statistics = _repoWrapper.Pet.GetStatisticConutries(parameters);
            var metadata = statistics.MetaData;

            Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));

            return(Ok(statistics));
        }
        public StatisticModel GetStatistic(StatisticParameters parameters)
        {
            if (parameters == null || parameters.Text == null)
            {
                throw new ArgumentNullException();
            }

            var result = new StatisticModel
            {
                Hyphens = regExProvider.GetMatchCount(parameters.Text, @"\-"),
                Spaces  = regExProvider.GetMatchCount(parameters.Text, @"\s"),
                Words   = regExProvider.GetMatchCount(parameters.Text, @"(\w|\d)*")
            };

            return(result);
        }
        public void GetStatistic_ParameterPropertyIsNotNull_CallRegexService()
        {
            //Given
            RegExProvider.Setup(x => x.GetMatchCount(It.IsAny <string>(), It.IsAny <string>())).Returns(1);
            var parameters = new StatisticParameters()
            {
                Text = "Text"
            };

            //When
            var result = StatisticService.GetStatistic(parameters);

            //Then
            Assert.AreEqual(1, result.Hyphens);
            Assert.AreEqual(1, result.Spaces);
            Assert.AreEqual(1, result.Words);
            RegExProvider.Verify(x => x.GetMatchCount(It.IsAny <string>(), It.IsAny <string>()), Times.Exactly(3));
        }
Beispiel #5
0
        public ActionResult GenerateStatistics(TextInputModel text)
        {
            if (!ModelState.IsValid)
            {
                return(GetErrorResponse());
            }

            StatisticParameters parameters = new StatisticParameters()
            {
                Text = GetText(text.File)
            };
            var statistic = this.statisticService.GetStatistic(parameters);

            var textStatistics = new TextStatisticsResultModel()
            {
                Hyphens = statistic.Hyphens,
                Spaces  = statistic.Spaces,
                Words   = statistic.Words
            };

            return(Json(textStatistics));
        }
Beispiel #6
0
        public PagedList <StatisticModel> GetStatisticConutries(StatisticParameters parameters)
        {
            /*var statistics2 = context.Users.Where(u => u.Country != null)
             * .Join(
             *     context.Pets.Where(p => p.IsSick),
             *     u => u.Id,
             *     p => p.UserId,
             *     (u, p) => new
             *     {
             *         p.Id,
             *         u.Country
             *     }
             * )
             * .Join(
             *     context.MedicalHistories.Where(m => m.EndDate == null),
             *     up => up.Id,
             *     m => m.PetId,
             *     (up, m) => new
             *     {
             *         up.Id,
             *         up.Country,
             *         m.NameDisease,
             *     }
             * )
             * .GroupBy(upm => upm.Id)
             * .Select(upm => new {
             *     Id = upm.Key,
             *     Country = upm.Select(u => u.Country).FirstOrDefault(),
             * });*/
            IQueryable <StatisticModel> statistics = context.Users
                                                     .Join(
                context.Pets.Where(p => p.IsSick),
                u => u.Id,
                p => p.UserId,
                (u, p) => new
            {
                p.Id,
                u.Country
            }
                )
                                                     .Join(
                context.MedicalHistories.Where(m => m.EndDate == null),
                up => up.Id,
                m => m.PetId,
                (up, m) => new
            {
                m.PetId,
                up.Country,
                m.NameDisease,
            }
                )
                                                     .GroupBy(upm => upm.Country)
                                                     .Select(upm => new StatisticModel()
            {
                Country = upm.Key,
                Count   = upm.Count()
            });

            return(PagedList <StatisticModel> .ToPagedList(statistics,
                                                           parameters.PageNumber,
                                                           parameters.PageSize));
        }