private void InsertReplay(DsReplayDto replay, List <string> playerNames) { var dbReplay = new Dsreplay(replay); dbReplay.Dsplayers.Where(x => playerNames.Contains(x.Name)).ToList().ForEach(x => x.isPlayer = true); ReplayFilter.SetDefaultFilter(new List <Dsreplay>() { dbReplay }); DbService.SetMid(dbReplay); insertService.AddReplay(dbReplay); }
public async Task <DateTime?> Produce(IFormFile file, string nameHash) { List <DsReplayDto> replays; using (var stream = new MemoryStream((int)file.Length)) { await file.CopyToAsync(stream); replays = await Decompress(stream); } if (replays.Any()) { var dsreplays = replays.Select(s => new Dsreplay(s)).ToList(); dsreplays.SelectMany(s => s.Dsplayers).Where(x => x.Name == "player").ToList().ForEach(f => { f.Name = nameHash; f.isPlayer = true; }); ReplayFilter.SetDefaultFilter(dsreplays); Produce(dsreplays); return(dsreplays.First().Gametime); } return(null); }
public async Task <DateTime?> Produce(string gzipbase64String, string nameHash) { try { var replays = JsonSerializer.Deserialize <List <DsReplayDto> >(await DSData.UnzipAsync(gzipbase64String)).OrderByDescending(o => o.GAMETIME); if (replays.Any()) { var dsreplays = replays.Select(s => new Dsreplay(s)).ToList(); dsreplays.SelectMany(s => s.Dsplayers).Where(x => x.Name == "player").ToList().ForEach(f => { f.Name = nameHash; f.isPlayer = true; }); ReplayFilter.SetDefaultFilter(dsreplays); Produce(dsreplays); return(dsreplays.First().Gametime); } } catch (Exception ex) { logger.LogError($"failed producing data: {ex.Message}"); } return(null); }