Example #1
0
        static void ListFlowerCombinations()
        {
            var calculator   = new FlowerCalculator();
            var flowerTuples = calculator.CalculateAllOrderedFlowerFormulasWithEmptyResult();

            flowerTuples.ForEach(x => Console.WriteLine($"{x.FlowerA.ToString()} + {x.FlowerB.ToString()}"));
        }
        protected IEnumerable <PlantFormula> GetPlantFormulasContainingPlant(Plant plant)
        {
            var stemCalculator   = new StemCalculator();
            var flowerCalculator = new FlowerCalculator();

            var allFlowerFormulasContainingPlant = dbContext.FlowerFormulas.Where(x => x.FlowerA == plant.Flower || x.FlowerB == plant.Flower).ToList();

            allFlowerFormulasContainingPlant.Add(new FlowerFormula(plant.Flower, plant.Flower, plant.Flower));
            var allStemFormulasContainingPlant = dbContext.StemFormulas.Where(x => x.StemA == plant.Stem || x.StemB == plant.Stem).ToList();

            allStemFormulasContainingPlant.Add(new StemFormula(plant.Stem, plant.Stem, plant.Stem));

            var formulas = allFlowerFormulasContainingPlant
                           .SelectMany(x => allStemFormulasContainingPlant
                                       .Select(y => new PlantFormula
            {
                PlantA = plant,
                PlantB = new Plant(
                    (plant.Flower == x.FlowerA) ? x.FlowerB : x.FlowerA,
                    (plant.Stem == y.StemA) ? y.StemB : y.StemA,
                    false),
                Result = new Plant(x.Result.Value, y.Result.Value, false)
            }))
                           .OrderBy(x => x.PlantB.Flower)
                           .ThenBy(x => x.PlantB.Stem);

            return(formulas.AsEnumerable());
        }
Example #3
0
        static void Main(string[] args)
        {
            flowerCalculator = new FlowerCalculator();
            stemCalculator   = new StemCalculator();
            seedCalculator   = new SeedCalculator();
            flowerSeeder     = new FlowerFormulaSeeder(flowerCalculator);
            stemSeeder       = new StemFormulaSeeder(stemCalculator);
            seedSeeder       = new SeedStorageSeeder(seedCalculator);
            catalog          = new Catalog();

            //ReseedFormulas();

            catalog.Reseed();
            seedSeeder.Reseed();

            //LoopForFlowerOrStemType();

            var currentPlants = Guesser.CurrentPlants;

            currentPlants.AddRange(Guesser.GetPlantsFromSeedStorage());
            ReportUntestedPlantFormulasForCurrentPlants(currentPlants);

            //ReportUntestedSeedsInStorage();

            ReportUntestedPlants();

            //ReportFormulasForMissingResults();
        }
 public FlowerFormulaSeeder(FlowerCalculator flowerCalculator)
 {
     this.flowerCalculator = flowerCalculator;
 }