예제 #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);
        }
예제 #2
0
        public List <ProducedModel> GetProducedGoods()
        {
            List <ProducedModel> produced = new List <ProducedModel>();

            var brews = brewRepository.GetBrewsAndTheirRelatedEntitiesAsync(false).Result;

            foreach (var brew in brews)
            {
                int avaible = brew.Recipes.Any() ? CountMaxProduction(brew.Recipes) : 0;

                produced.Add(new ProducedModel()
                {
                    BrewId        = brew.BrewId,
                    Avaible       = avaible,
                    Name          = brew.Name,
                    ResourceNames = brew.Recipes.Select(x => x.ResourceName).ToList(),
                });
            }

            return(produced);
        }