public void OnMatchUploaded(object sender, OnMatchDoneArgs args) { var r = new List <string>(); lock (_lock) { using (var ps = PowerShell.Create()) { var destination = Path.Combine(_ocrDir, Path.GetFileName(args.Match.ImageFilePath)); System.IO.File.Copy(args.Match.ImageFilePath, destination); var script = System.IO.File.ReadAllText(@"C:\Users\leonardo.kobus\Desktop\lobby\processImages.ps1"); ps.AddScript(script); var result = ps.Invoke(); using (var reader = new StreamReader(@"C:\Users\leonardo.kobus\Desktop\lobby\result\matches.csv")) { reader.ReadLine(); while (!reader.EndOfStream) { r.Add(reader.ReadLine()); } args.MatchInfo = r; } System.IO.File.Delete(destination); } } OnMatchProcessed?.Invoke(this, args); }
public void OnMatchResolved(object sender, OnMatchDoneArgs args) { if (args.Match.Status == MatchStatusEnum.CONCLUDED) { if (!args.IsOCRUpdate) { _playerResultsRepository.DeleteByMatchId(args.Match.Id); } args.Match.PlayersTeamLooser.ForEach(p => _playerResultsRepository.Upsert(PlayerResults.Factory.CreatLost(p, args.Match.Id).Instance)); args.Match.PlayersTeamWinner.ForEach(p => _playerResultsRepository.Upsert(PlayerResults.Factory.CreateWin(p, args.Match.Id).Instance)); } }
public void OnMatchProcessed(object sender, OnMatchDoneArgs args) { var result = args.Match; var matches = GroupMatchesByDate(args.MatchInfo); matches.GroupBy(p => p.Key) .ToList() .Where(p => !string.IsNullOrEmpty(p.Key)) .ToList() .ForEach(match => { var m = match.FirstOrDefault(); if (args.Match.IsMatchDateEmpty) { result = Factory.From(result) .WithDate( DateTime.ParseExact(match.Key, "yyyy:MM:dd HH:mm:ss", CultureInfo.InvariantCulture)) .Instance; } m.Value.ForEach(player => { var values = player.Split(';'); int points = 0; int.TryParse(values[2], out points); var character = values[3]; var currentChar = CharEnum.ToList().FirstOrDefault(c => c.Valor.ToUpper() == character.ToUpper()); if (currentChar == null) { currentChar = CharEnum.UNDEFINED; } var p = new PlayerInfo(currentChar, values[1], points); if (values[0] == "Derrota") { result.PlayersTeamLooser.Add(p); } else { result.PlayersTeamWinner.Add(p); } }); }); _matchRepository.Upsert(result); OnMatchResolved?.Invoke(this, args); }
public async Task RegisterMatchAsync(Stream stream, MatchTypeEnum type, DateTime date) { await Task.Factory.StartNew(() => { try { var match = Match.Factory.NewMatch(type) .WithDate(date); var imageFile = SaveImageInStorage(stream, match.Instance.Id); _matchRepository.Upsert(match.WithImage(imageFile).Instance); var matchArgs = new OnMatchDoneArgs(match.Instance, type); OnMatchUploaded?.Invoke(this, matchArgs); } catch (Exception oi) { var i = ""; } }); }
public void OnMatchResolved(object sender, OnMatchDoneArgs args) { if (args.Match.Type == MatchTypeEnum.TEAM) { var results = _teamPontuationRepository.GetTeamsPontuationsIdsFromMatchId(args.Match.Id); if (results.Count > 0) { results.ForEach(r => _teamPontuationRepository.Delete(r)); } var teamWinnersMembers = args.Match.PlayersTeamWinner.Select(p => p.Name).ToList(); var teamLoosersMembers = args.Match.PlayersTeamLooser.Select(p => p.Name).ToList(); var teamWinner = TeamPontuation.Factory.CreateTeamWon(teamWinnersMembers, args.Match.PlayersTeamWinner.Sum(p => p.Points), args.Match.Id, args.Match.TeamA); var teamLooser = TeamPontuation.Factory.CreateTeamLooser(teamLoosersMembers, args.Match.PlayersTeamWinner.Sum(p => p.Points), args.Match.Id, args.Match.TeamB); _teamPontuationRepository.Upsert(teamWinner.Instance); _teamPontuationRepository.Upsert(teamLooser.Instance); } }
public void OnMatchResolved(object sender, OnMatchDoneArgs args) { _changeRepository.Upsert(Factory.CreateChange(args.UserId, UserChangeEnum.MATCH_UPDATE).Instance); }