Ejemplo n.º 1
0
        public override IEnumerable <IndexFieldInfo> GetIndexFieldInfos(SnCR.Field snField, out string textExtract)
        {
            var data = (ContentRepository.Fields.HyperLinkField.HyperlinkData)snField.GetData();

            if (data == null)
            {
                textExtract = String.Empty;
                return(null);
            }
            var strings = new List <string>();

            if (data.Href != null)
            {
                strings.Add(data.Href.ToLowerInvariant());
            }
            if (data.Target != null)
            {
                strings.Add(data.Target.ToLowerInvariant());
            }
            if (data.Text != null)
            {
                strings.Add(data.Text.ToLowerInvariant());
            }
            if (data.Title != null)
            {
                strings.Add(data.Title.ToLowerInvariant());
            }
            textExtract = String.Join(" ", strings.ToArray());
            return(CreateFieldInfo(snField.Name, strings));
        }
Ejemplo n.º 2
0
        public override IEnumerable <IndexFieldInfo> GetIndexFieldInfos(SnCR.Field snField, out string textExtract)
        {
            var data = snField.GetData() as ContentRepository.Storage.BinaryData;

            textExtract = data == null ? String.Empty : Search.TextExtractor.GetExtract(data, snField.Content.ContentHandler);
            return(CreateFieldInfo(snField.Name, textExtract));
        }
Ejemplo n.º 3
0
        public override IEnumerable <string> GetParsableValues(SnCR.Field snField)
        {
            var value     = snField.GetData();
            var boolValue = value == null ? false : (bool)value;

            return(new[] { boolValue?YES : NO });
        }
Ejemplo n.º 4
0
        public override IEnumerable <string> GetParsableValues(SnCR.Field snField)
        {
            var data = snField.GetData() ?? string.Empty;

            var stringData = data as string;

            if (stringData != null)
            {
                return new[] { stringData.ToLowerInvariant() }
            }
            ;

            var listData = data as IEnumerable <string>;

            if (listData != null)
            {
                return(listData.Select(s => s.ToLowerInvariant()).ToArray());
            }

            var enumerableData = data as System.Collections.IEnumerable;

            if (enumerableData != null)
            {
                return((from object item in enumerableData select Convert.ToString(item, System.Globalization.CultureInfo.InvariantCulture).ToLowerInvariant()).ToList());
            }

            return(new[] { string.Empty });
        }
    }
Ejemplo n.º 5
0
        private long SetPrecision(SnCR.Field snField, long ticks)
        {
            var setting = snField.FieldSetting as ContentRepository.Fields.DateTimeFieldSetting;

            ContentRepository.Fields.DateTimePrecision?precision = null;
            if (setting != null)
            {
                precision = setting.Precision;
            }
            if (precision == null)
            {
                precision = ContentRepository.Fields.DateTimeFieldSetting.DefaultPrecision;
            }

            switch (precision.Value)
            {
            case ContentRepository.Fields.DateTimePrecision.Millisecond:
                return(ticks / TimeSpan.TicksPerMillisecond * TimeSpan.TicksPerMillisecond);

            case ContentRepository.Fields.DateTimePrecision.Second:
                return(ticks / TimeSpan.TicksPerSecond * TimeSpan.TicksPerSecond);

            case ContentRepository.Fields.DateTimePrecision.Minute:
                return(ticks / TimeSpan.TicksPerMinute * TimeSpan.TicksPerMinute);

            case ContentRepository.Fields.DateTimePrecision.Hour:
                return(ticks / TimeSpan.TicksPerHour * TimeSpan.TicksPerHour);

            case ContentRepository.Fields.DateTimePrecision.Day:
                return(ticks / TimeSpan.TicksPerDay * TimeSpan.TicksPerDay);

            default:
                throw new NotImplementedException("Unknown DateTimePrecision: " + precision.Value);
            }
        }
Ejemplo n.º 6
0
        public override IEnumerable <string> GetParsableValues(SnCR.Field snField)
        {
            var value    = snField.GetData();
            var intValue = value == null ? 0 : (int)value;

            return(new[] { intValue.ToString() });
        }
Ejemplo n.º 7
0
        public override IEnumerable <IndexFieldInfo> GetIndexFieldInfos(SnCR.Field snField, out string textExtract)
        {
            var data = snField.GetData() as string;

            textExtract = data == null ? String.Empty : data.ToLowerInvariant();
            return(CreateFieldInfo(snField.Name, textExtract));
        }
Ejemplo n.º 8
0
        public override IEnumerable <IndexFieldInfo> GetIndexFieldInfos(SnCR.Field snField, out string textExtract)
        {
            textExtract = String.Empty;
            var value = (string)snField.GetData() ?? String.Empty;

            return(CreateFieldInfo(snField.Name, value.ToLowerInvariant()));
        }
Ejemplo n.º 9
0
        public override IEnumerable <string> GetParsableValues(SnCR.Field snField)
        {
            var value      = (string)snField.GetData() ?? String.Empty;
            var parentPath = RepositoryPath.GetParentPath(value.ToLowerInvariant()) ?? "/";

            return(new[] { parentPath.ToLowerInvariant() });
        }
Ejemplo n.º 10
0
        public override IEnumerable <string> GetParsableValues(SnCR.Field snField)
        {
            var data = (ContentRepository.Fields.HyperLinkField.HyperlinkData)snField.GetData();

            if (data == null)
            {
                return(null);
            }
            var strings = new List <string>();

            if (data.Href != null)
            {
                strings.Add(data.Href.ToLowerInvariant());
            }
            if (data.Target != null)
            {
                strings.Add(data.Target.ToLowerInvariant());
            }
            if (data.Text != null)
            {
                strings.Add(data.Text.ToLowerInvariant());
            }
            if (data.Title != null)
            {
                strings.Add(data.Title.ToLowerInvariant());
            }
            return(strings);
        }
Ejemplo n.º 11
0
        public override IEnumerable <IndexFieldInfo> GetIndexFieldInfos(SnCR.Field snField, out string textExtract)
        {
            var nodeTypeName = snField.Content.ContentHandler.NodeType.Name.ToLowerInvariant();

            textExtract = nodeTypeName;
            return(CreateFieldInfo(snField.Name, nodeTypeName));
        }
Ejemplo n.º 12
0
        public override IEnumerable <IndexFieldInfo> GetIndexFieldInfos(SnCR.Field snField, out string textExtract)
        {
            textExtract = String.Empty;
            var nodeType = snField.Content.ContentHandler.NodeType;
            var types    = nodeType.NodeTypePath.Split('/').Select(p => p.ToLowerInvariant());

            return(CreateFieldInfo(snField.Name, types));
        }
Ejemplo n.º 13
0
        public override IEnumerable <IndexFieldInfo> GetIndexFieldInfos(SnCR.Field snField, out string textExtract)
        {
            var value     = snField.GetData();
            var boolValue = value == null ? false : (bool)value;

            textExtract = String.Empty;
            return(CreateFieldInfo(snField.Name, boolValue ? YES : NO));
        }
Ejemplo n.º 14
0
        public override IEnumerable <string> GetParsableValues(SnCR.Field snField)
        {
            var value        = snField.GetData();
            var decimalValue = value == null ? (Decimal)0.0 : (Decimal)value;
            var doubleValue  = Convert.ToDouble(decimalValue);

            return(new[] { decimalValue.ToString(System.Globalization.CultureInfo.InvariantCulture) });
        }
Ejemplo n.º 15
0
        public override IEnumerable <IndexFieldInfo> GetIndexFieldInfos(SnCR.Field snField, out string textExtract)
        {
            textExtract = String.Empty;
            var data  = snField.GetData();
            var ticks = data == null ? 0 : ((DateTime)data).Ticks;

            return(CreateFieldInfo(snField.Name, SetPrecision(snField, ticks)));
        }
Ejemplo n.º 16
0
        public override IEnumerable <IndexFieldInfo> GetIndexFieldInfos(SnCR.Field snField, out string textExtract)
        {
            var value = (string)snField.GetData() ?? String.Empty;

            textExtract = value.ToLowerInvariant();
            var parentPath = RepositoryPath.GetParentPath(textExtract) ?? "/";

            return(CreateFieldInfo(snField.Name, parentPath));
        }
Ejemplo n.º 17
0
        public override IEnumerable <IndexFieldInfo> GetIndexFieldInfos(SnCR.Field snField, out string textExtract)
        {
            var value        = snField.GetData();
            var decimalValue = value == null ? (Decimal)0.0 : (Decimal)value;
            var doubleValue  = Convert.ToDouble(decimalValue);

            textExtract = decimalValue.ToString(System.Globalization.CultureInfo.InvariantCulture);
            return(CreateFieldInfo(snField.Name, doubleValue));
        }
Ejemplo n.º 18
0
        public override IEnumerable <string> GetParsableValues(SnCR.Field snField)
        {
            var snFieldValue = (string)snField.GetData();

            if (String.IsNullOrEmpty(snFieldValue))
            {
                return(null);
            }
            snFieldValue = snFieldValue.ToLowerInvariant();
            var terms = snFieldValue.Split(",;".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Select(w => w.Trim()).ToArray();

            return(terms);
        }
Ejemplo n.º 19
0
        public override IEnumerable <string> GetParsableValues(SnCR.Field snField)
        {
            var path      = (string)snField.GetData() ?? String.Empty;
            var separator = "/";

            string[] fragments = path.ToLowerInvariant().Split(separator.ToCharArray(), StringSplitOptions.None);
            string[] pathSteps = new string[fragments.Length];
            for (int i = 0; i < fragments.Length; i++)
            {
                pathSteps[i] = string.Join(separator, fragments, 0, i + 1);
            }
            return(pathSteps);
        }
Ejemplo n.º 20
0
        public override IEnumerable <IndexFieldInfo> GetIndexFieldInfos(ContentRepository.Field snField, out string textExtract)
        {
            textExtract = String.Empty;

            var content   = snField.Content;
            var boolValue = false;

            //check Trash
            //if (TrashBin.IsInTrash(content.ContentHandler as GenericContent))
            //    boolValue = true;

            //Do not index documents sent to the trash as system content, because when
            //restored (moved back to the original location) they will not be re-indexed
            //and would remain system content. Only the container TrashBags are system content.
            if (content.ContentHandler is TrashBag)
            {
                boolValue = true;
            }

            //check SystemFile
            if (!boolValue)
            {
                if (content.ContentHandler.NodeType.IsInstaceOfOrDerivedFrom("SystemFile"))
                {
                    boolValue = true;
                }
            }

            //check SystemFolder
            if (!boolValue)
            {
                var parent = content.ContentHandler;

                using (new SystemAccount())
                {
                    while (parent != null)
                    {
                        if (parent.NodeType.IsInstaceOfOrDerivedFrom("SystemFolder"))
                        {
                            boolValue = true;
                            break;
                        }

                        parent = parent.Parent;
                    }
                }
            }

            return(CreateFieldInfo(snField.Name, boolValue ? BooleanIndexHandler.YES : BooleanIndexHandler.NO));
        }
Ejemplo n.º 21
0
        public override IEnumerable <IndexFieldInfo> GetIndexFieldInfos(SnCR.Field snField, out string textExtract)
        {
            string className, name;

            if (ResourceManager.Running && snField.LocalizationEnabled && snField.IsLocalized && ResourceManager.ParseResourceKey(snField.GetStoredValue(), out className, out name))
            {
                var strings = ResourceManager.Current.GetStrings(className, name);
                textExtract = string.Join(" ", strings);
                return(CreateFieldInfo(snField.Name, strings));
            }
            var data        = snField.GetData();
            var stringValue = data == null ? String.Empty : data.ToString().ToLowerInvariant();

            textExtract = stringValue;

            return(CreateFieldInfo(snField.Name, stringValue));
        }
Ejemplo n.º 22
0
        public override IEnumerable <IndexFieldInfo> GetIndexFieldInfos(SnCR.Field snField, out string textExtract)
        {
            var value    = snField.GetData();
            var intValue = 0;

            try
            {
                intValue = value == null ? 0 : (int)value;
            }
            catch (Exception e)
            {
                Logger.WriteVerbose(String.Format("IntegerIndexHandler ERROR: content: {0} field: {1}, value: {2}", snField.Content.Path, snField.Name, value));
                throw;
            }
            textExtract = intValue.ToString();
            return(CreateFieldInfo(snField.Name, intValue));
        }
Ejemplo n.º 23
0
        public override IEnumerable <IndexFieldInfo> GetIndexFieldInfos(SnCR.Field snField, out string textExtract)
        {
            textExtract = String.Empty;
            var data = snField.GetData();
            var node = data as Node;

            if (node != null)
            {
                return(CreateFieldInfo(snField.Name, node.Id.ToString()));
            }
            var nodes = data as System.Collections.IEnumerable;

            if (nodes != null)
            {
                return(CreateFieldInfo(snField.Name, nodes.Cast <Node>().Select(n => n.Id.ToString())));
            }
            return(CreateFieldInfo(snField.Name, LucQuery.NullReferenceValue));
        }
Ejemplo n.º 24
0
        public override IEnumerable <string> GetParsableValues(SnCR.Field snField)
        {
            var data = snField.GetData();
            var node = data as Node;

            if (node != null)
            {
                return new[] { node.Id.ToString() }
            }
            ;
            var nodes = data as System.Collections.IEnumerable;

            if (nodes != null)
            {
                return(nodes.Cast <Node>().Select(n => n.Id.ToString()));
            }
            return(null);
        }
    }
Ejemplo n.º 25
0
        public override IEnumerable <string> GetParsableValues(SnCR.Field snField)
        {
            var data = snField.GetData();

            try
            {
                var dateData = Convert.ToDateTime(data);
                if (dateData != DateTime.MinValue)
                {
                    return new[] { "'" + dateData.ToString("yyyy.MM.dd HH:mm:ss") + "'" }
                }
                ;
            }
            catch (Exception ex)
            {
                Logger.WriteInformation(Logger.EventId.NotDefined, ex);
            }
            return(new[] { string.Empty });
        }
Ejemplo n.º 26
0
        public override IEnumerable <string> GetParsableValues(SnCR.Field snField)
        {
            var content   = snField.Content;
            var boolValue = false;

            //check Trash
            if (TrashBin.IsInTrash(content.ContentHandler as GenericContent))
            {
                boolValue = true;
            }

            //check SystemFile
            if (!boolValue)
            {
                if (content.ContentHandler.NodeType.IsInstaceOfOrDerivedFrom("SystemFile"))
                {
                    boolValue = true;
                }
            }

            //check SystemFolder
            if (!boolValue)
            {
                var parent = content.ContentHandler;

                using (new SystemAccount())
                {
                    while (parent != null)
                    {
                        if (parent.NodeType.IsInstaceOfOrDerivedFrom("SystemFolder"))
                        {
                            boolValue = true;
                            break;
                        }

                        parent = parent.Parent;
                    }
                }
            }

            return(new[] { boolValue?BooleanIndexHandler.YES : BooleanIndexHandler.NO });
        }
Ejemplo n.º 27
0
        // IndexHandler for comma or semicolon separated strings (e.g. Red,Green,Blue) used in tagging fields
        public override IEnumerable <IndexFieldInfo> GetIndexFieldInfos(SnCR.Field snField, out string textExtract)
        {
            // Ensure initial textExtract for out parameter. It is used if the field value is null or empty.
            textExtract = String.Empty;
            // Get the value. A field type is indexable with this handler that provides a string value
            // but ShortText and LongText are recommended.
            var snFieldValue = (string)snField.GetData();

            // Return null if the value is not indexable. Lucene field and text extract won't be created.
            if (String.IsNullOrEmpty(snFieldValue))
            {
                return(null);
            }
            // Convert to lowercase for case insensitive index handling
            snFieldValue = snFieldValue.ToLowerInvariant();
            // Create an array of words. Words can be separated by comma or semicolon. Whitespaces will be removed.
            var terms = snFieldValue.Split(",;".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
                        .Select(w => w.Trim()).ToArray();

            // Concatenate the words with space separator for text extract.
            textExtract = String.Join(" ", terms);
            // Produce the lucene multiterm field with a base's tool and return with it.
            return(CreateFieldInfo(snField.Name, terms));
        }
Ejemplo n.º 28
0
 public abstract IEnumerable <IndexFieldInfo> GetIndexFieldInfos(SnCR.Field snField, out string textExtract);
Ejemplo n.º 29
0
        public override IEnumerable <string> GetParsableValues(SnCR.Field snField)
        {
            var data = snField.GetData() as string;

            return(new[] { data == null ? String.Empty : data.ToString().ToLowerInvariant() });
        }
Ejemplo n.º 30
0
 public abstract IEnumerable <string> GetParsableValues(SnCR.Field snField);