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(); }
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()); }
public StemFormulaSeeder(StemCalculator stemCalculator) { this.stemCalculator = stemCalculator; }