public static async Task <bool> Export(IDataRepository data, IStatsConverter converter, GameFilter filter, string file) { return(await Task.Run(() => { var games = data.GetAllGames(); var filtered = filter.Apply(games); try { if (filtered.Count <= 0) { throw new ConverterException("No stats found"); } var stream = converter.ConvertToStream(filtered); using (var f = File.Create(file)) { stream.Seek(0, SeekOrigin.Begin); stream.CopyTo(f); } return true; } catch (Exception e) { StatsConverter.Logger.Error(e); return false; } })); }
public void Setup() { var g1 = new Game() { Deck = new Deck(), Region = Region.US, Mode = GameMode.BRAWL, Result = GameResult.WIN, PlayerClass = PlayerClass.HUNTER, StartTime = new DateTime(2015, 01, 25, 19, 03, 26), EndTime = new DateTime(2015, 01, 25, 19, 09, 14) }; var g2 = new Game() { Id = new Guid("11000000-0000-0000-0000-000000000022"), Deck = new Deck() { Name = "A Deck" }, DeckVersion = new Version(1, 0), Region = Region.EU, Mode = GameMode.RANKED, Format = GameFormat.STANDARD, Result = GameResult.LOSS, StartTime = new DateTime(2015, 01, 25, 19, 14, 36), EndTime = new DateTime(2015, 01, 25, 19, 24, 17), Rank = 12, PlayerClass = PlayerClass.WARLOCK, PlayerName = "ThePlayer", OpponentClass = PlayerClass.HUNTER, OpponentName = "后海大白鲨", Turns = 5, Minutes = 6, PlayerGotCoin = true, WasConceded = false, Note = new Note("[Face] Some notes") }; var data = new Mock <IDataRepository>(); data.Setup(x => x.GetAllGamesWithDeck(It.IsAny <Guid>())) .Returns(new List <Game>()); converter = new CSVConverter(); games = new List <Game>() { g1, g2 }; }
public static async Task <bool> Import(IStatsConverter converter, string file) { try { return(await Task.Run(() => { // create backup before any importing Backup.CreateBackup("BackupStatsConv"); // import from file using (var fs = new FileStream(file, FileMode.Open)) { var games = converter.ConvertFromStream(fs); StatsConverter.Data.AddGames(games); return true; } })); } catch (Exception e) { StatsConverter.Logger.Error(e); return(false); } }