/// <summary>
        /// GetTheme
        /// </summary>
        /// <returns></returns>
        private async Task <ThemesViewData> GetThemes()
        {
            ThemeResultData themeResultData =
                await WebApiClient.GetAsync <ThemeResultData>(Constant.WebApiControllerRessources, Constant.WebApiThemeList);

            List <ThemeViewData> themeList = new List <ThemeViewData>();

            if (themeResultData == null || !themeResultData.OperationSuccess ||
                themeResultData.ThemeDtoList == null)
            {
                return(null);
            }
            foreach (var themeDto in themeResultData.ThemeDtoList)
            {
                ThemeViewData theme = new ThemeViewData
                {
                    TranslationsList = new List <ThemeTranslationItemData>(),
                    Theme            = themeDto
                };
                theme.TranslationsList = await GetThemeTranslations(themeDto.ThemeId);

                themeList.Add(theme);
            }
            ThemesViewData themeslistdata = new ThemesViewData {
                Themes = themeList
            };

            return(themeslistdata);
        }
        /// <summary>
        /// The ressources page.
        /// </summary>
        /// <returns></returns>
        public async Task <ActionResult> Index()
        {
            FilterFormData filterFormData = new FilterFormData();

            //authors
            AuthorsViewData authorsViewData = await GetAuthors();

            List <SelectListItem> authors = (from author in authorsViewData.Authors
                                             where author?.Author != null
                                             select new SelectListItem
            {
                Text = author.Author.AuthorFirstName + $@" " + author.Author.AuthorLastName,
                Value = author.Author.AuthorId.ToString()
            }).ToList();

            ViewBag.Authors = authors;

            //Themes :
            ThemesViewData themesViewData = await GetThemes();

            List <SelectListItem> themes = (from theme in themesViewData.Themes
                                            where theme?.Theme != null
                                            select new SelectListItem()
            {
                Text = theme.TranslationsList.First(t => t.LanguageId == _lang).ThemeName,
                Value = theme.Theme.ThemeId.ToString(),
            }).ToList();

            ViewBag.Themes = themes;

            //Areas
            AreasViewData areasViewData = await GetAreas();

            List <SelectListItem> areas = (from area in areasViewData.Areas
                                           where area?.Area != null
                                           select new SelectListItem
            {
                Text = area.TranslationsList.First(t => t.LanguageId == _lang).AreaName,
                Value = area.Area.AreaId.ToString()
            }).ToList();

            ViewBag.Areas = areas;

            RessourcesModel ressourcesModel = new RessourcesModel
            {
                PublicationsViewData = await GetPublications(),
                OccurrencesViewData  = await GetOccurrences(),
                PartnersViewData     = await GetPartners(),
                NewsViewDatas        = await GetNews(),
                FilterFormData       = filterFormData
            };

            return(View(ressourcesModel));
        }
        /// <summary>
        /// Get publicationThemes list.
        /// </summary>
        /// <returns>publications view.</returns>
        public async Task <ThemesViewData> GetPublicationThemes(int publicationId)
        {
            ThemesViewData themesViewData = new ThemesViewData {
                Themes = new List <ThemeViewData>()
            };
            PublicationThemeRequestData findPublicationThemeRequest = new PublicationThemeRequestData
            {
                PublicationThemeDto = new PublicationThemeItemData {
                    PublicationId = publicationId
                },
                FindPublicationThemeDto = FindPublicationThemeItemData.PublicationId
            };

            PublicationThemeResultData publicationThemeResultData =
                await WebApiClient.PostFormJsonAsync <PublicationThemeRequestData, PublicationThemeResultData>(
                    Constant.WebApiControllerRessources, Constant.WebApiFindPublicationThemes,
                    findPublicationThemeRequest);

            if (!publicationThemeResultData.ThemeTranslationDtoList.Any())
            {
                return(themesViewData);
            }
            foreach (var themeTranslationItemData in publicationThemeResultData.ThemeTranslationDtoList.Where(t => t.LanguageId == _lang).ToList())
            {
                ThemeViewData themeViewData = new ThemeViewData
                {
                    Theme = new ThemeItemData {
                        ThemeId = themeTranslationItemData.Theme.ThemeId
                    },
                    TranslationsList = new List <ThemeTranslationItemData>()
                };
                themeViewData.TranslationsList.Add(themeTranslationItemData);
                themesViewData.Themes.Add(themeViewData);
            }

            return(themesViewData);
        }