/*   public static List<MultiDictItem> GetMultiDictSearchItems(int langId, string searchText, string leadingCharacter)
         * {
         *     var items = new List<MultiDictItem>();
         *
         *     foreach (var item in DB.GetMultiDictSearchItems(langId, searchText, leadingCharacter))
         *     {
         *         var curItem = new MultiDictItem(item["item_id"].ToString(), item["item_value"].ToString(), false);
         *         items.Add(curItem);
         *     }
         *
         *     return items;
         * }*/

        public static List <MultiDictItem> GetMultiDictSearchItems(int langId, string searchText, string leadingCharacter)
        {
            var items = CacheProvider.Provider.GetOrSetForever("multilingual_dictionary", () => MultiDictItem.GetAllMultiDictItems())[langId]
                        .Where(i => i.Text.ToUpper().Contains(searchText.ToUpper())).ToList();

            if (!String.IsNullOrEmpty(leadingCharacter))
            {
                items = items.Where(i => i.Text.ToUpper().StartsWith(leadingCharacter)).ToList(); // no need of to uppering of leading character
            }

            return(items);
        }
예제 #2
0
        /*  public static IEnumerable<MultiDictTranslation> GetMultiDictItemTranslations(string itemId)
         * {
         *    var items = new List<MultiDictTranslation>();
         *
         *    foreach (var item in DB.GetMultiDictTranslations(itemId))
         *    {
         *        var curItem = new MultiDictTranslation(int.Parse(item["id"].ToString()), item["translation_value"].ToString(), Convert.ToInt32(item["lang_id"]), itemId);
         *        items.Add(curItem);
         *    }
         *
         *    return items;
         * }*/

        public static IEnumerable <MultiDictTranslation> GetMultiDictItemTranslations(string itemId)
        {
            var items = new List <MultiDictTranslation>();

            var allMultiDictItems = CacheProvider.Provider.GetOrSetForever("multilingual_dictionary", () => MultiDictItem.GetAllMultiDictItems());

            foreach (var item in allMultiDictItems)
            {
                var curDictEntry = item.Value.Where(i => i.ItemId == itemId).FirstOrDefault();

                if (curDictEntry != null)
                {
                    var curTranslationItem = new MultiDictTranslation(0, curDictEntry.Text, curDictEntry.LangId, itemId, curDictEntry.SearchText);
                    items.Add(curTranslationItem);
                }
            }

            var externalOrderingList = InterfaceLanguages.Languages.Where(l => l.IsInterfaceLang).Select(l => l.Id).Reverse().ToList(); // Interface languages

            // var externalOrderingList = new List<int> { 5, 10, 15, 25 };

            return(items.OrderByDescending(i => externalOrderingList.IndexOf(i.LangId)).ThenBy(i => i.LangId));
        }