Exemple #1
0
        public void HyperlinkExtractor_Returns_ElasticHyperlink()
        {
            var extractor = new HyperlinkExtractor();
            var actual    = extractor.GetValue(dataElements, "10418");

            actual.Text.Should().Be("E27#1000/721#14093#5489* (Wikimedia Commons)");
            actual.Url.Should().Be("https://commons.wikimedia.org/wiki/File:Flugzeug_Grandjean_vor_dem_Aufstieg_-_CH-BAR_-_3236769.tif");
        }
Exemple #2
0
        public TextWithHyperlinks(string text, HyperlinkExtractor extractor = null)
        {
            _text           = text;
            _sf             = (StringFormat)(StringFormat.GenericTypographic.Clone());
            _sf.FormatFlags = StringFormatFlags.FitBlackBox | StringFormatFlags.MeasureTrailingSpaces;
            if (extractor == null)
            {
                extractor = new HyperlinkExtractor();
            }
            _glyphs = extractor.ExtractHyperlinks(text)
                      .Select(h => new HyperlinkGlyph(h))
                      .ToArray();
            _sf.SetMeasurableCharacterRanges(
                _glyphs.Select(l => new CharacterRange(l.Start, l.Length)).ToArray());

            _hoveredLink          = new TrackingService <HyperlinkGlyph>();
            _hoveredLink.Changed += OnHoveredLinkChanged;
        }
        private object GetValue(List <DataElement> detailData, FieldConfiguration fieldConfiguration)
        {
            object retVal = null;

            try
            {
                switch (fieldConfiguration.Type)
                {
                case ElasticFieldTypes.TypeString:
                    var textExtractor = new TextExtractor();
                    retVal = GetValue(detailData, fieldConfiguration, textExtractor);
                    break;

                case ElasticFieldTypes.TypeTimePeriod:
                    var timePeriodExtractor = new TimePeriodExtractor();
                    retVal = GetValue(detailData, fieldConfiguration, timePeriodExtractor);
                    break;

                case ElasticFieldTypes.TypeDateWithYear:
                    var dateWithYearExtractor = new DateWithYearExtractor();
                    retVal = GetValue(detailData, fieldConfiguration, dateWithYearExtractor);
                    break;

                case ElasticFieldTypes.TypeBase64:
                    var elasticBase64Extractor = new Base64Extractor();
                    retVal = GetValue(detailData, fieldConfiguration, elasticBase64Extractor);
                    break;

                case ElasticFieldTypes.TypeInt + "?":
                case ElasticFieldTypes.TypeInt:
                    var intExtractor = new IntExtractor();
                    retVal = GetValue(detailData, fieldConfiguration, intExtractor);
                    break;

                case ElasticFieldTypes.TypeBool + "?":
                case ElasticFieldTypes.TypeBool:
                    var boolExtractor = new BoolExtractor();
                    retVal = GetValue(detailData, fieldConfiguration, boolExtractor);
                    break;

                case ElasticFieldTypes.TypeFloat + "?":
                case ElasticFieldTypes.TypeFloat:
                    var floatExtractor = new FloatExtractor();
                    retVal = GetValue(detailData, fieldConfiguration, floatExtractor);
                    break;

                case ElasticFieldTypes.TypeHyperlink:
                    var hyperlinkExtractor = new HyperlinkExtractor();
                    retVal = GetValue(detailData, fieldConfiguration, hyperlinkExtractor);
                    break;

                case ElasticFieldTypes.TypeEntityLink:
                    var entityLinkExtractor = new EntityLinkExtractor();
                    retVal = GetValue(detailData, fieldConfiguration, entityLinkExtractor);
                    break;
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
                throw;
            }

            return(retVal);
        }