public void PrintInstruction(CardStatistics stats, StreamWriter writer) { if (stats == null) { throw new ArgumentNullException(nameof(stats)); } if (writer == null) { throw new ArgumentNullException(nameof(writer)); } var replacements = this.BuildReplacementsDictionary(stats); Helpers.WriteFileFromTemplate(writer, this._instructionTemplate, replacements); }
private IDictionary <string, string> BuildReplacementsDictionary(CardStatistics stats) { var r = new Dictionary <string, string>(); r.Add("LAND_CARDS_COUNT", stats.LandCardsCount.ToString("D")); r.Add("ANIMAL_CARDS_COUNT", stats.AnimalCardsCount.ToString("D")); r.Add("PLANT_CARDS_COUNT", stats.PlantCardsCount.ToString("D")); r.Add("LAND_CARDS_MULTIPLIER", this.GetMinmax(stats.LandCardsMultiplierMin, stats.LandCardsMultiplierMax)); r.Add("ANIMAL_CARDS_MULTIPLIER", this.GetMinmax(stats.AnimalCardsMultiplierMin, stats.AnimalCardsMultiplierMax)); r.Add("PLANT_CARDS_MULTIPLIER", this.GetMinmax(stats.PlantCardsMultiplierMin, stats.PlantCardsMultiplierMax)); r.Add("CARDS_TOTAL", stats.CardsTotal.ToString("D")); r.Add("PLAYERS_NUMBER", this.GetMinmax(2, 4)); // TODO: read from ini r.Add("LAND_CARDS_TYPES_COUNT", stats.LandDefinitionsCount.ToString("D")); r.Add("ANIMAL_CARDS_TYPES_COUNT", stats.AnimalDefinitionsCount.ToString("D")); r.Add("PLANT_CARDS_TYPES_COUNT", stats.PlantDefinitionsCount.ToString("D")); return(r); }
static void Main(string[] args) { var parameters = new LayoutParameters(); var layout = new Layout(parameters); layout.Calculations(); var cardInfo = new CardInfo[] { new CardInfo { Title = "Tundra", CardType = CardType.Land, ZoneSetName = ZoneName.Tundra, CardCount = 6, ImageName = "Tundra.jpg", Description = @"Bezleśne zbiorowisko roślinności w zimnym klimacie strefy arktycznej i subarktycznej. Latem temperatura nie przekracza 15 °C, trwa dzień polarny." }, new CardInfo { Title = "Chrobotek reniferowy", CardType = CardType.Plant, ZoneSetName = ZoneName.Tundra, CardCount = 3, ImageName = "Chrobotek reniferowy.jpg", Description = @"Gatunek grzybów należący do rodziny chrobotkowatych <i>(Cladoniaceae)</i>. Ze względu na współżycie z glonami zaliczany jest do porostów." }, new CardInfo { Title = "Tajga", CardType = CardType.Land, ZoneSetName = ZoneName.Tajga, CardCount = 6, ImageName = "Tajga.jpg", Description = @"Tajga, borealne lasy iglaste – lasy iglaste, które występują w północnej części Azji i Ameryki Północnej, w obrębie klimatu umiarkowanego chłodnego na półkuli północnej. Tajgę w większości porastają lasy iglaste oraz, w niewielkim stopniu, lasy liściaste." }, new CardInfo { Title = "Renifer tundrowy", CardType = CardType.Animal, ZoneSetName = ZoneName.Tajga, CardCount = 3, ImageName = "ReniferTundrowy.jpg", Description = @"Renifer tundrowy, ren, karibu (Rangifer tarandus) – gatunek ssaka z rodziny jeleniowatych <i>(Cervidae)</i>, zamieszkujący arktyczną tundrę i lasotundrę w Eurazji i Ameryce Północnej." }, new CardInfo { Title = "Klimat śródziemnomorski", CardType = CardType.Land, ZoneSetName = ZoneName.Środziemnomorski, CardCount = 6, ImageName = "Środziemnomorski.jpg", Description = @"Rodzaj klimatu podzwrotnikowego (subtropikalnego), występujący nad Morzem Śródziemnym, a także w Kalifornii, RPA, na południu Australii oraz u wybrzeży Chile w Ameryce Południowej. Jego charakterystyczną cechą są ciepłe i suche lata powyżej 20 °C oraz łagodne zimy powyżej 0 °C." }, }; cardInfo = LoadCardsDefinitions().ToArray(); var cards = Helpers.BuildCardSet(cardInfo).ToArray(); // fix for cards damaged during cut /* cards = cards.Where(c => c.Title.Equals("Tajga")).Take(4) * .Concat(cards.Where(c => c.Title.Equals("Jodła")).Take(3)) * .Concat(cards.Where(c => c.Title.Equals("Modrzew")).Take(1)) * .ToArray(); */ var renderer = new CardsFileRenderer(parameters); using (var output = new StreamWriter(@".\Content\output.html")) { renderer.RenderFile(cards, output); output.Flush(); output.Close(); } var cardStats = new CardStatistics(cardInfo, cards); var instructioNRenderer = new InstructionRenderer(); using (var output = new StreamWriter(@".\Content\instruction_output.html")) { instructioNRenderer.PrintInstruction(cardStats, output); output.Flush(); output.Close(); } }