Пример #1
0
        public static ODataQuerier <T> Create(string name, XElement schema = null, string dataConverter = null, string dateFormatter = null, string format = null)
        {
            Database database = new DatabaseManufacturer().Create(name);

            XElement xSchema = schema ?? new PrimarySchemaProvider().GetSchema(name);

            string sConverter;

            if (string.IsNullOrWhiteSpace(dataConverter))
            {
                if (typeof(T) == typeof(XElement))
                {
                    sConverter = "xml";
                }
                else if (typeof(T) == typeof(string))
                {
                    sConverter = "json";
                }
                else
                {
                    throw new NotSupportedException(typeof(T).ToString());
                }
            }
            else
            {
                sConverter = dataConverter;
            }
            DataConverter <T> oDataConverter = new DataConverterManufacturer().Create <T>(sConverter);

            DateFormatter formatter;

            if (string.IsNullOrWhiteSpace(dateFormatter))
            {
                if (oDataConverter is DataConverter <XElement> )
                {
                    formatter = new DotNETDateFormatter();
                }
                else if (oDataConverter is DataConverter <string> )
                {
                    formatter = new JsonNETFormatter()
                    {
                        TimezoneOffset = schema.GetTimezoneOffset()
                    };
                }
                else
                {
                    throw new ArgumentNullException("dateFormatter");
                }
            }
            else
            {
                formatter = new DateFormatterManufacturer().Create(dateFormatter, schema.GetTimezoneOffset(), format);
            }
            oDataConverter.DateFormatter = formatter;

            return(new ODataQuerier <T>(database, xSchema, oDataConverter));
        }
Пример #2
0
        protected static int Count(string name, XElement schema, string entity, string filter, object parameterValues)
        {
            ParameterCollection parameterCollection = new ParameterCollection();
            Query query = new Query(entity, null, filter, null, schema, parameterCollection);

            SetParameterValues(parameterCollection, parameterValues);

            Database database = new DatabaseManufacturer().Create(name);

            return(database.Count(query));
        }
Пример #3
0
        public static DateTime GetUtcNow(string name)
        {
            Database database = new DatabaseManufacturer().Create(name);

            return(database.GetUtcNow());
        }