private IEnumerable <IconDescription> ToIconDescription(ThemifyIconsIcon icon, string filter)
        {
            var memberInfo = typeof(ThemifyIconsIcon).GetMember(icon.ToString()).FirstOrDefault();

            if (memberInfo == null)
            {
                yield break;
            }

            foreach (var cat in memberInfo.GetCustomAttributes(typeof(IconCategoryAttribute), false).Cast <IconCategoryAttribute>())
            {
                var desc = memberInfo.GetCustomAttributes(typeof(DescriptionAttribute), false).Cast <DescriptionAttribute>().First();
                var id   = memberInfo.GetCustomAttributes(typeof(IconIdAttribute), false).Cast <IconIdAttribute>().FirstOrDefault();

                if (!string.IsNullOrEmpty(filter) &&
                    !(
                        desc.Description.IndexOf(filter, StringComparison.CurrentCultureIgnoreCase) > -1 ||
                        icon.ToString().IndexOf(filter, StringComparison.CurrentCultureIgnoreCase) > -1)
                    )
                {
                    continue;
                }

                yield return(new IconDescription {
                    Category = cat.Category, Description = desc.Description, Icon = icon, Id = id?.Id
                });
            }
        }