public async Task <Response> Index(bool brands, bool books, bool authors, bool genres, bool publishingCompanies, int numSeries) { Response response = new Response(); Serie <Series> series = new Serie <Series>(); try { if (numSeries == 0) { series.Incorporate( await Context.Series.OrderBy(x => x.Name) .Include(x => x.Cover) .ToListAsync() ); } else { series.Incorporate( await Context.Series.OrderBy(x => x.Name) .Include(x => x.Cover) .Take(numSeries) .ToListAsync() ); } if (publishingCompanies) { series.Union( await Context.Series.Include(x => x.PublishingCompaniesSeries) .ThenInclude(y => y.PublishingCompany) .ToListAsync() ); series.PublishingCompanies(); } if (authors) { series.Union( await Context.Series.Include(x => x.AuthorsSeries) .ThenInclude(y => y.Author) .ToListAsync() ); series.Authors(); } if (genres) { series.Union( await Context.Series.Include(x => x.GenresSeries) .ThenInclude(y => y.Genre) .ToListAsync() ); series.Genres(); } if (brands) { series.Union( await Context.Series.Include(x => x.BrandsSeries) .ThenInclude(y => y.Brand) .ToListAsync() ); series.Brands(); } if (books) { series.Union( await Context.Series.Include(x => x.Books) .ThenInclude(y => y.Cover) .ToListAsync() ); } response.Series = series; } catch (Exception ex) { response.Message = ex.Message; response.BadRequest = true; } return(response); }