Esempio n. 1
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();
        }
Esempio n. 2
0
        static void ListStemCombinations()
        {
            var calculator = new StemCalculator();
            var stemTuples = calculator.CalculateAllOrderedStemFormulasWithEmptyResult();

            stemTuples.ForEach(x => Console.WriteLine($"{x.StemA.ToString()} + {x.StemB.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());
        }
Esempio n. 4
0
 public StemFormulaSeeder(StemCalculator stemCalculator)
 {
     this.stemCalculator = stemCalculator;
 }