/// <summary>
        /// Get the translation by order of preferrence.
        /// </summary>
        /// <param name="concatenateListOfCodeLanguages"></param>
        /// <param name="translationCodes"></param>
        /// <returns></returns>
        public async Task <Dictionary <string, string> > GetTranslationsAsync(string concatenateListOfCodeLanguages, List <string> translationCodes)
        {
            if (translationCodes == null)
            {
                throw new ArgumentNullException("translationCodes");
            }

            var preferredLanguage = await GetPreferredLanguage(concatenateListOfCodeLanguages);

            var result = new Dictionary <string, string>();

            foreach (var translationCode in translationCodes)
            {
                var record = await _translationRepository.GetAsync(preferredLanguage, translationCode);

                if (record != null)
                {
                    result.Add(record.Code, record.Value);
                }
                else
                {
                    result.Add(translationCode, string.Format("[{0}]", translationCode));
                }
            }

            return(result);
        }