Exemple #1
0
        public async Task <List <BrewModel> > GetRandomFeaturedBrewsAsync(int number)
        {
            Randomizer randomizer   = new Randomizer();
            int        countOfBrews = await brewRepository.CountAsync();

            List <BrewModel> featuredBrews = new List <BrewModel>();

            if (countOfBrews > 0)
            {
                var brews = await brewRepository.GetBrewsAndTheirRelatedEntitiesAsync(false);

                List <int> randomNumbers = randomizer.ReturnListOfUniqueRandomNumbers(countOfBrews, number);
                if (countOfBrews > Core.Constants.NumericConstants.MinimumNumberOfFeaturedBrews)
                {
                    foreach (var brew in randomNumbers)
                    {
                        featuredBrews.Add(brews.ElementAt(brew));
                    }
                }
                else
                {
                    featuredBrews = brews.Take(NumericConstants.AmountOfFeaturedBrewsInHome).ToList();
                }
            }

            return(featuredBrews);
        }