Revenj.DatabasePersistence.Postgres.QueryGeneration.QueryComposition.QueryParts.FormatStringArray C# (CSharp) Method

FormatStringArray() private method

private FormatStringArray ( object value, string name, Type type ) : string
value object
name string
type System.Type
return string
        private string FormatStringArray(object value, string name, Type type)
        {
            if (value != null)
            {
                var array = ((Array)value).Cast<object>().ToArray();
                if (array.Length > 0)
                    return FormatStringValues(name, type, array);
            }
            if (value != null)
                type = value.GetType();
            var elementType = type.GetElementType();
            if (NpgsqlTypes.TypeConverter.CanConvert(elementType))
                return
                    "(SELECT * FROM unnest(array[]::{1}[]) AS \"{0}\") AS \"{0}\"".With(
                        name,
                        NpgsqlTypes.TypeConverter.GetTypeName(elementType));
            return "(SELECT * FROM {1} LIMIT 0) AS \"{0}\"".With(name, FromSqlSource("sq", elementType));
        }