public void ReloadSessionExchangesForExchange(VirtualCommitteeExchange exchange)
        {
            using var scope   = scopeFactroy.CreateScope();
            using var context = scope.ServiceProvider.GetRequiredService <MunityContext>();
            var session = context.CommitteeSessions.AsNoTracking().Where(n => n.Committee.CommitteeId == exchange.CommitteeId)
                          .Select(n => new CommitteeSessionExchange(this.scopeFactroy)
            {
                SessionId             = n.CommitteeSessionId,
                CurrentAgendaItemName = n.CurrentAgendaItem.Name,
                CurrentAgendaItemId   = n.CurrentAgendaItem.AgendaItemId,
                SessionName           = n.Name,
                Petitions             = n.CurrentAgendaItem.Petitions
                                        .Where(n => n.Status != Base.EPetitionStates.Resolved && n.Status != Base.EPetitionStates.Done && n.Status != Base.EPetitionStates.Removed)
                                        .Select(p =>
                                                new PetitionDto()
                {
                    PetitionDate          = p.PetitionDate,
                    PetitionTypeName      = p.PetitionType.Name,
                    PetitionCategoryName  = p.PetitionType.Category,
                    PetitionUserIso       = p.User.DelegateCountry.Iso,
                    PetitionUserName      = p.User.RoleName,
                    PetitionId            = p.PetitionId,
                    PetitionTypeId        = p.PetitionType.PetitionTypeId,
                    PetitionTypeSortOrder = p.PetitionType.SortOrder,
                    PetitionUserId        = p.User.RoleId,
                    Status             = p.Status,
                    TargetAgendaItemId = p.AgendaItem.AgendaItemId,
                    Text = p.Text
                }
                                                ).OrderBy(n => n.PetitionTypeSortOrder).ThenBy(n => n.PetitionDate).ToObservableCollection()
            }).FirstOrDefault();

            exchange.CurrentSessionExchange = session;
        }
        public VirtualCommitteeExchange GetExchange(string committeeId)
        {
            var exchange = _exchanges.FirstOrDefault(n => n.CommitteeId == committeeId);

            if (exchange == null)
            {
                exchange = new VirtualCommitteeExchange(committeeId);

                ReloadSessionExchangesForExchange(exchange);
                this._exchanges.Add(exchange);

                _logger.LogInformation($"New exchange for committee: {committeeId} created.");
            }
            return(exchange);
        }