Exemplo n.º 1
0
        public override CompareResult Compare(string fragmentText)
        {
            double similarity = 0;
            if (ignoreCase)
            {
                if (ItemKey.StartsWith(fragmentText, StringComparison.InvariantCultureIgnoreCase))
                {
                    this.SortIndex = LevenshteinDistance(ItemKey, fragmentText, out similarity, ignoreCase) * Math.Pow(10, FilterColumns.Length + 1);
                    return CompareResult.VisibleAndSelected;
                }
                if (ItemValue.StartsWith(fragmentText, StringComparison.InvariantCultureIgnoreCase))
                {
                    this.SortIndex = LevenshteinDistance(ItemValue, fragmentText, out similarity, ignoreCase) * Math.Pow(10, FilterColumns.Length);
                    return CompareResult.VisibleAndSelected;
                }

                if (FilterColumns != null)
                {
                    int i = 1;
                    foreach (string strCol in FilterColumns)
                    {
                        if (strCol.StartsWith(fragmentText, StringComparison.InvariantCultureIgnoreCase))
                        {
                            this.SortIndex = LevenshteinDistance(strCol, fragmentText, out similarity, ignoreCase) * Math.Pow(10, FilterColumns.Length - i);
                            return CompareResult.VisibleAndSelected;
                        }
                        i++;
                    }
                }
            }
            else
            {
                if (ItemKey.Contains(fragmentText))
                {
                    this.SortIndex = LevenshteinDistance(ItemKey, fragmentText, out similarity, ignoreCase) * Math.Pow(10, FilterColumns.Length + 1);
                    return CompareResult.VisibleAndSelected;
                }
                if (ItemValue.Contains(fragmentText))
                {
                    this.SortIndex = LevenshteinDistance(ItemValue, fragmentText, out similarity, ignoreCase) * Math.Pow(10, FilterColumns.Length);
                    return CompareResult.VisibleAndSelected;
                }

                if (FilterColumns != null)
                {
                    int i = 1;
                    foreach (string strCol in FilterColumns)
                    {
                        if (strCol.ToLower().Contains(fragmentText))
                        {
                            this.SortIndex = LevenshteinDistance(strCol, fragmentText, out similarity, ignoreCase) * Math.Pow(10, FilterColumns.Length - i);
                            return CompareResult.VisibleAndSelected;
                        }
                        i++;
                    }
                }
            }
            return CompareResult.Hidden;
        }
Exemplo n.º 2
0
        private void LoadFromExtensionData()
        {
            JsonExtensionDataItemCollection Data;
            JsonExtensionDataItem           ImageItem;

            Data      = HelperFunctions.ConvertExtensionData(_ExtensionData);
            ImageItem = Data.GetItemByName("image");
            if (ImageItem != null)
            {
                if (ImageItem.IsClassType)
                {
                    if (ImageItem.Items.Count == 2)
                    {
                        Images = new ItemImages
                        {
                            SmallImage = ImageItem.Items[0].Value.ToString(),
                            LargeImage = ImageItem.Items[1].Value.ToString()
                        };
                    }
                    else
                    {
                        string SmallImage = null;
                        string LargeImage = null;

                        foreach (JsonExtensionDataItem Item in ImageItem.Items)
                        {
                            string ItemValue;

                            ItemValue = Item.Value.ToString();
                            if (ItemValue.Contains("-300."))
                            {
                                SmallImage = ItemValue;
                            }
                            else if (ItemValue.Contains("-600."))
                            {
                                LargeImage = ItemValue;
                            }
                        }

                        if (SmallImage == null)
                        {
                            SmallImage = ImageItem.Items[0].Value.ToString();
                        }
                        if (LargeImage == null)
                        {
                            LargeImage = ImageItem.Items[0].Value.ToString();
                        }

                        Images = new ItemImages
                        {
                            SmallImage = SmallImage,
                            LargeImage = LargeImage
                        };
                    }
                }
                else if (ImageItem.DataType.Name == "String")
                {
                    Images = new ItemImages
                    {
                        SmallImage = ImageItem.Value.ToString(),
                        LargeImage = ImageItem.Value.ToString()
                    };
                }
                else
                {
                    Console.WriteLine("WTF");
                }
            }
        }