void ExportToCsv() { if (saveFileDialog.ShowDialog() == DialogResult.OK) { var builder = new EnumerableToCsvBuilder <CombatActorViewModel>(viewModelsMap.Values.ToArray()) .AddMapping("Pair", model => model.CombatPair) .AddMapping("Attacker", model => model.AttackerName) .AddMapping("Defender", model => model.DefenderName) .AddMapping("Target choices", model => model.TargetPrefs) .AddMapping("Damage caused", model => model.DamageCaused) .AddMapping("Spell triggers", model => model.WeaponSpellAttacks) .AddMapping("Misses", model => model.Misses) .AddMapping("Glancing blows", model => model.GlancingBlows) .AddMapping("Parried", model => model.Parries) .AddMapping("Evaded", model => model.Evasions) .AddMapping("Shield blocked", model => model.ShieldBlocks) .AddMapping("Total hits", model => model.TotalHits.ToString()) .AddMapping("Total attacks", model => model.TotalMainActorAttacks.ToString()) .AddMapping("Hit ratio", model => model.HitRatio) .AddMapping("Miss ratio", model => model.MissRatio) .AddMapping("Glance ratio", model => model.GlanceRatio) .AddMapping("Blocked ratio", model => model.BlockRatio) .AddMapping("Parried ratio", model => model.ParryRatio) .AddMapping("Evaded ratio", model => model.EvadeRatio); var csv = builder.BuildCsv(); var filePath = saveFileDialog.FileName; File.WriteAllText(filePath, csv); processStarter.StartSafe(Path.GetDirectoryName(filePath)); } }
string BuildTxt() { var csvBuilder = new EnumerableToCsvBuilder <Condition>(conditions); csvBuilder.AddMapping("ConditionId", condition => condition.ConditionId.ToString()); csvBuilder.AddMapping("Default", condition => condition.Default.ToString()); csvBuilder.AddMapping("Disabled", condition => condition.Disabled.ToString()); csvBuilder.AddMapping("Pattern", condition => condition.Pattern.ToString()); csvBuilder.AddMapping("ConditionKind", condition => condition.ConditionKind.ToString()); csvBuilder.AddMapping("MatchingKind", condition => condition.MatchingKind.ToString()); var output = csvBuilder.BuildCsv(); return(output); }
public void Given_sample_collection_Builds_expected_output() { var sampledata = new[] { new SampleData() { Id = 1, Data = "D|1" }, new SampleData() { Id = 2, Data = "D\"2\"" } }.AsEnumerable(); var builder = EnumerableToCsvBuilder.Create(sampledata) .AddMapping("Id", data => data.Id.ToString()) .AddMapping("Data", data => data.Data); var csv = builder.BuildCsv().NormalizeLineEndings(); Expect(csv, EqualTo(Resources.CsvOutput1.NormalizeLineEndings())); }
public string CreateCsv(GrangerContext context, string herdName) { if (herdName == null) { throw new GrangerException("No herd specified"); } var creatures = context.Creatures.Where(x => x.Herd == herdName).ToArray(); if (creatures.Length == 0) { throw new GrangerException(string.Format("No creatures found in {0} herd or herd did not exist", herdName)); } var builder = new EnumerableToCsvBuilder <CreatureEntity>(creatures) .AddMapping("Name", entity => entity.Name) .AddMapping("Server", entity => entity.ServerName) .AddMapping("Herd", entity => entity.Herd) .AddMapping("Father", entity => entity.FatherName) .AddMapping("Mother", entity => entity.MotherName) .AddMapping("Traits", entity => string.Join(",", entity.Traits.Select(trait => trait.ToShortcutString()))) .AddMapping("Not in mood", entity => entity.NotInMood?.ToString(CultureInfo.InvariantCulture)) .AddMapping("Give birth", entity => entity.PregnantUntil?.ToString(CultureInfo.InvariantCulture)) .AddMapping("Last groomed", entity => entity.GroomedOn?.ToString(CultureInfo.InvariantCulture)) .AddMapping("Gender", entity => entity.GenderAspect) .AddMapping("Age", entity => entity.Age.ToString()) .AddMapping("Color", entity => entity.CreatureColorId) .AddMapping("Inspect skill", entity => entity.TraitsInspectedAtSkill?.ToString()) .AddMapping("Cared by", entity => entity.TakenCareOfBy) .AddMapping("Tags", entity => entity.SpecialTagsRaw) .AddMapping("Comments", entity => entity.Comments) .AddMapping("Birth date", entity => entity.BirthDate?.ToString(CultureInfo.InvariantCulture)) .AddMapping("Branded for", entity => entity.BrandedFor) .AddMapping("SmileXamined", entity => entity.SmilexamineLastDate?.ToString(CultureInfo.InvariantCulture)); return(builder.BuildCsv()); }