/// <summary>
        /// Gets content from the ContentItemCountryLanguages table according user location/language.
        /// </summary>
        /// <param name="request"></param>
        public static List <ContentItem> GetContentBlock(GetContentItemCountryLanguagesRequest request)
        {
            var content = ContentService.GetContentItemCountryLanguages(request);

            // Default to US English if the content block does not exist for specified country/language.
            if (!content.Any())
            {
                request.CountryCode = CountryCodes.UnitedStates;
                request.LanguageID  = Languages.English;
                content             = ContentService.GetContentItemCountryLanguages(request);
            }
            return(content);
        }
        /// <summary>
        /// Gets all content from ContentItemCountryLanguages table and returns them in a list.
        /// </summary>
        /// <param name="contentItemID">Optional parameter. If passed it will only retrieve that specific contnent item.</param>
        /// <returns></returns>
        private static List <ContentItem> GetContentItemCountryLanguages(GetContentItemCountryLanguagesRequest request)
        {
            // Establish the base query
            var query = "SELECT";

            query += " ContentItemCountryLanguageID, ContentItemID, CountryID, LanguageID, Content";
            query += " FROM ExigoWebContext.ContentItemCountryLanguages";

            if (request.CountryCode != "" && request.LanguageID != null)
            {
                query += " Where CountryID = @countrycode";
                query += " And LanguageID = @languageid";

                if (request.ContentItemIDs.Any())
                {
                    query += " And ContentItemID in @contentitemids";
                }
            }

            else if (request.ContentItemIDs.Any())
            {
                query += " Where ContentItemID in @contentitemids";
            }

            var model = new List <ContentItem>();

            using (var context = ExigoDAL.Sql())
            {
                model = context.Query <ContentItem>(query, new { countrycode = request.CountryCode, languageid = request.LanguageID, contentitemids = request.ContentItemIDs }).ToList();
            }

            if (model.Any() && request.ContentItems.Any())
            {
                foreach (var requestContentItem in request.ContentItems)
                {
                    var contentItem = model.Where(c => c.ContentItemID == requestContentItem.ContentItemID).FirstOrDefault();
                    if (contentItem != null)
                    {
                        model.Where(c => c.ContentItemID == requestContentItem.ContentItemID).FirstOrDefault().ContentDescription = requestContentItem.ContentDescription;
                    }
                }
            }

            return(model);
        }
 /// <summary>
 /// Retrieves alert from ContentItemCountryLanguages database table.
 /// </summary>
 /// <param name="contentItemCountryLanguagesRequest"></param>
 /// <returns></returns>
 public static List <ContentItem> GetAlert(GetContentItemCountryLanguagesRequest contentItemCountryLanguagesRequest)
 {
     return(ContentService.GetContentItemCountryLanguages(contentItemCountryLanguagesRequest));
 }