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

FormatArray() public method

public FormatArray ( object values ) : string
values object
return string
        public string FormatArray(object[] values)
        {
            if (values == null || values.Length == 0)
                throw new FrameworkException("Array must have elements!");
            var element = values[0].GetType();
            var converter = ConverterFactory.GetSerializationFactory(element);
            if (converter != null)
            {
                var source =
                    SqlSourceAttribute.FindSource(element)
                    ?? "\"" + element.Namespace + "\".\"" + element.Name + "\"";
                var arr = Postgres.PostgresTypedArray.ToArray(values, converter);
                return arr + "::" + source + "[]";
            }
            if (NpgsqlTypes.TypeConverter.CanConvert(element))
            {
                var val =
                    Postgres.PostgresTypedArray.ToArray(
                        values,
                        v => NpgsqlTypes.TypeConverter.Convert(element, v));
                var name = NpgsqlTypes.TypeConverter.GetTypeName(element);
                return val + "::" + name + "[]";
            }
            throw new NotSupportedException("Don't know how to convert array!");
        }