Exemple #1
0
    public void Handle(MatchCommentaryEvent e, string aggregateId)
    {
        string id = ResultHeaderReadModel.IdFromBitsMatchId(e.BitsMatchId, e.RosterId);
        ResultHeaderReadModel results = DocumentSession.Load <ResultHeaderReadModel>(id);

        results.SetMatchCommentary(e.SummaryText, e.SummaryHtml, e.BodyText);
    }
Exemple #2
0
    public ActionResult Details(int id, string rosterId)
    {
        string headerId = ResultHeaderReadModel.IdFromBitsMatchId(id, rosterId);
        ResultHeaderReadModel headerReadModel = CompositionRoot.DocumentSession.Load <ResultHeaderReadModel>(headerId);

        if (headerReadModel == null)
        {
            throw new HttpException(404, "Match result not found");
        }

        Roster roster = CompositionRoot.DocumentSession.Load <Roster>(headerReadModel.RosterId);
        ResultHeaderViewModel headerViewModel = new(headerReadModel, roster);

        if (roster.IsFourPlayer)
        {
            string matchId = ResultSeries4ReadModel.IdFromBitsMatchId(id, rosterId);
            ResultSeries4ReadModel resultReadModel = CompositionRoot.DocumentSession.Load <ResultSeries4ReadModel>(matchId)
                                                     ?? new ResultSeries4ReadModel();

            return(View("Details4", new Result4ViewModel(headerViewModel, resultReadModel)));
        }
        else
        {
            string matchId = ResultSeriesReadModel.IdFromBitsMatchId(id, rosterId);
            ResultSeriesReadModel resultReadModel = CompositionRoot.DocumentSession.Load <ResultSeriesReadModel>(matchId)
                                                    ?? new ResultSeriesReadModel();

            return(View(new ResultViewModel(headerViewModel, resultReadModel)));
        }
    }
    public HttpResponseMessage Get()
    {
        int season = DocumentSession.LatestSeasonOrDefault(SystemTime.UtcNow.Year);

        // rosters
        Roster[] rosters = DocumentSession.Query <Roster, RosterSearchTerms>()
                           .Where(r => r.Season == season)
                           .ToArray();
        IEnumerable <string> resultIds = rosters.Select(x => ResultHeaderReadModel.IdFromBitsMatchId(x.BitsMatchId, x.Id !));

        ResultHeaderReadModel[] results = DocumentSession.Load <ResultHeaderReadModel>(resultIds);
        Dictionary <string, ResultHeaderReadModel> resultsDictionary = results.Where(x => x != null)
                                                                       .ToDictionary(x => x.Id !);
        List <CalendarEvent> calendarEvents = new();

        foreach (Roster roster in rosters)
        {
            _ = resultsDictionary.TryGetValue(ResultHeaderReadModel.IdFromBitsMatchId(roster.BitsMatchId, roster.Id !), out ResultHeaderReadModel resultHeaderReadModel);
            RosterCalendarEvent rosterCalendarEvent = new(roster, resultHeaderReadModel);
            calendarEvents.Add(rosterCalendarEvent);
        }

        // activities
        Activity[] activities = DocumentSession.Query <Activity, ActivityIndex>()
                                .Where(x => x.Season == season)
                                .ToArray();

        foreach (Activity activity in activities)
        {
            ActivityCalendarEvent activityCalendarEvent = new(activity);
            calendarEvents.Add(activityCalendarEvent);
        }

        return(Request.CreateResponse(HttpStatusCode.OK, calendarEvents.ToArray(), new MediaTypeHeaderValue("text/iCal")));
    }
Exemple #4
0
    public override async Task Handle(HandlerContext <Command> context)
    {
        Roster roster = CompositionRoot.DocumentSession.Load <Roster>(context.Payload.RosterId);

        if (roster.IsFourPlayer)
        {
            return;
        }

        string resultSeriesReadModelId = ResultSeriesReadModel.IdFromBitsMatchId(roster.BitsMatchId, roster.Id !);
        ResultSeriesReadModel resultSeriesReadModel = CompositionRoot.DocumentSession.Load <ResultSeriesReadModel>(resultSeriesReadModelId);
        string resultHeaderReadModelId = ResultHeaderReadModel.IdFromBitsMatchId(roster.BitsMatchId, roster.Id !);
        ResultHeaderReadModel resultHeaderReadModel = CompositionRoot.DocumentSession.Load <ResultHeaderReadModel>(resultHeaderReadModelId);
        MatchRegisteredEmail  email = new(
            roster.Team,
            roster.Opponent !,
            context.Payload.Score,
            context.Payload.OpponentScore,
            resultSeriesReadModel,
            resultHeaderReadModel);
        await CompositionRoot.EmailService.SendAsync(email);
    }
        private async Task <IHttpActionResult> Handle(MatchRegisteredEvent @event)
        {
            Roster roster = DocumentSession.Load <Roster>(@event.RosterId);

            if (roster.IsFourPlayer)
            {
                return(Ok());
            }
            string resultSeriesReadModelId = ResultSeriesReadModel.IdFromBitsMatchId(roster.BitsMatchId, roster.Id);
            ResultSeriesReadModel resultSeriesReadModel = DocumentSession.Load <ResultSeriesReadModel>(resultSeriesReadModelId);
            string resultHeaderReadModelId = ResultHeaderReadModel.IdFromBitsMatchId(roster.BitsMatchId, roster.Id);
            ResultHeaderReadModel resultHeaderReadModel = DocumentSession.Load <ResultHeaderReadModel>(resultHeaderReadModelId);
            await Emails.MatchRegistered(
                roster.Team,
                roster.Opponent,
                @event.Score,
                @event.OpponentScore,
                resultSeriesReadModel,
                resultHeaderReadModel);

            return(Ok());
        }
Exemple #6
0
    private void DoRegister(string aggregateId, string rosterId, int teamScore, int opponentScore)
    {
        Roster roster = DocumentSession.Load <Roster>(rosterId);

        if (roster == null)
        {
            throw new HttpException(404, "Roster not found");
        }

        roster.MatchResultId = aggregateId;
        string id = ResultHeaderReadModel.IdFromBitsMatchId(roster.BitsMatchId, roster.Id !);

        ResultHeaderReadModel readModel = DocumentSession.Load <ResultHeaderReadModel>(id);

        if (readModel == null)
        {
            readModel = new ResultHeaderReadModel(roster, aggregateId, teamScore, opponentScore);
            DocumentSession.Store(readModel);
        }
        else
        {
            readModel.SetValues(roster, aggregateId, teamScore, opponentScore);
        }
    }