private void WriteRow(IXLWorksheet sheet, Game game, int row) { var props = new CellValue[] { new CellValue(game.Deck?.Name), new CellValue(game.DeckVersion), new CellValue(EnumStringConverter.ToTitleCase(game.PlayerClass)), new CellValue(EnumStringConverter.ToTitleCase(game.Mode)), new CellValue(EnumStringConverter.ToTitleCase(game.Format)), new CellValue(game.Region), new CellValue(game.Rank, XLCellValues.Number), new CellValue(game.StartTime, XLCellValues.DateTime), new CellValue(game.PlayerGotCoin ? "Yes" : "No"), new CellValue(EnumStringConverter.ToTitleCase(game.OpponentClass)), new CellValue(game.OpponentName), new CellValue(game.Turns, XLCellValues.Number), new CellValue(game.Minutes, XLCellValues.Number), new CellValue(EnumStringConverter.ToTitleCase(game.Result)), new CellValue(game.WasConceded ? "Yes" : "No"), new CellValue(game.Note?.Text), new CellValue(game.Note?.Archetype), new CellValue(game.Id), }; for (var i = 0; i < props.Length; i++) { sheet.Cell(row, i + 1).Value = props[i].Value; sheet.Cell(row, i + 1).SetDataType(props[i].Type); } }
/// <summary> /// Copy Game into a GameStats object. /// Will cause existing properties to be overwritten. /// </summary> public static void CopyTo(this Game from, GameStats to) { // dont't overwrite game ids with empty if (from.Id != Guid.Empty) { to.GameId = from.Id; } if (from.Deck == null || from.Deck.Name == null) { to.DeckName = Deck.Empty.Name; to.DeckId = Deck.Empty.Id; } else { to.DeckName = from.Deck.Name; to.DeckId = from.Deck.Id; } if (from.DeckVersion != null) { to.PlayerDeckVersion = new SerializableVersion( from.DeckVersion.Major, from.DeckVersion.Minor); } to.StartTime = from.StartTime; // set end time based on duration if (from.Minutes >= 0 && from.StartTime > DateTime.MinValue) { to.EndTime = from.StartTime.AddMinutes(from.Minutes); } else { to.EndTime = from.EndTime; } to.GameMode = Convert(from.Mode); to.Format = Convert(from.Format); to.Note = from.Note?.ToString(); to.OpponentHero = EnumStringConverter.ToTitleCase(from.OpponentClass); to.OpponentName = from.OpponentName; to.PlayerHero = EnumStringConverter.ToTitleCase(from.PlayerClass); to.PlayerName = from.PlayerName; to.Coin = from.PlayerGotCoin; to.Rank = from.Rank; to.Region = Convert(from.Region); to.Result = Convert(from.Result); to.Turns = from.Turns; to.WasConceded = from.WasConceded; }