public async Task <IReadOnlyCollection <EditionDTO> > GetAllByLanguage(string language)
        {
            var result = await this.dbContext
                         .Set <Edition>()
                         .Include(item => item.Details)
                         .Include(item => item.Event)
                         .ThenInclude(item => item.Details)
                         .Select(item => EditionUtils.ToEditionDTO(item, language))
                         .ToListAsync();

            return(new ReadOnlyCollection <EditionDTO>(result));
        }
        public async Task <EditionDTO> GetByLanguageAndId(string language, string id)
        {
            var query = this.dbContext
                        .Set <Edition>()
                        .Include(item => item.Details)
                        .Include(item => item.Event)
                        .ThenInclude(item => item.Details)
                        .Include(item => item.EditionTickets)
                        .Include(item => item.Organizers)
                        .ThenInclude(organizer => organizer.User)
                        .ThenInclude(user => user.Details)
                        .Include(item => item.Organizers)
                        .ThenInclude(organizer => organizer.User)
                        .ThenInclude(user => user.SocialLinks)
                        .Include(item => item.Sponsors)
                        .ThenInclude(editionSponsor => editionSponsor.Sponsor)
                        .Include(item => item.Activities)
                        .ThenInclude(editionActivity => editionActivity.Details)
                        .Include(item => item.Activities)
                        .ThenInclude(editionActivity => editionActivity.Users)
                        .ThenInclude(editionActivityUser => editionActivityUser.User)
                        .ThenInclude(user => user.Details)
                        .Include(item => item.Activities)
                        .ThenInclude(editionActivity => editionActivity.Users)
                        .ThenInclude(editionActivityUser => editionActivityUser.User)
                        .ThenInclude(presenter => presenter.SocialLinks)
                        .Include(item => item.Activities)
                        .ThenInclude(editionActivity => editionActivity.Scores);

            var result = await query.FirstOrDefaultAsync(item => item.Id == id);

            if (result == null)
            {
                return(null);
            }

            return(EditionUtils.ToEditionDTO(result, language));
        }