public IMessageContext Load(IMessage input)
        {
            var cmd = input as MatchResultNotificationCommand;

            _ctx_model          = new StoreMatchResultCommandContextModel();
            _ctx_model.Match_id = cmd.MatchId;

            var match_created_ev = _es.Replay(typeof(MatchCreated)).First(record =>
            {
                var data = record.Data as MatchData;
                return(data.Id.Equals(cmd.MatchId));
            });

            Update(new Event[] { match_created_ev });


            var player_strength_ev = _es.Replay(new TournamentContext(_ctx_model.Tournament_id, nameof(TournamentContext)),
                                                typeof(PlayerStrengthChanged)).Where(record =>
            {
                var data = record.Data as PlayerStrengthData;
                return(data.Match_id.Equals(cmd.MatchId));
            });


            Update(player_strength_ev);

            return(_ctx_model);
        }
        private Event Map_match_result(StoreMatchResultCommandContextModel ctx_model, MatchResultNotificationCommand cmd)
        {
            var match_result_data = new MatchResultData()
            {
                Match_id = cmd.MatchId,
                Results  = cmd.Results.Select(result => (events.data.SetResult)result).ToList()
            };

            return(new MatchPlayed(nameof(MatchPlayed),
                                   new TournamentContext(ctx_model.Tournament_id, nameof(TournamentContext)), match_result_data));
        }
 public Event[] Map_person_stats(StoreMatchResultCommandContextModel ctx_model,
                                 (PersonMatchStatsData.Result home, PersonMatchStatsData.Result away) match_result)