Exemplo n.º 1
0
        public static T QueryByKey <T>(Site site, string key, Func <Site, string, T> createModel)
            where T : IPersistable
        {
            var bucket = site.GetClient();

            object json;
            var    result = bucket.ExecuteTryGet(key, out json);

            if (result.HasValue)
            {
                var rawKey = ModelExtensions.GetRawDocumentKey(key);
                var obj    = ModelExtensions.JsonToObject <T>(json.ToString());
                obj.Init(createModel(site, rawKey));
                return(obj);
            }
            else
            {
                return(default(T));
            }
        }
Exemplo n.º 2
0
        public static T QueryByKey <T>(Site site, string key)
        {
            var bucket = site.GetClient();

            object json;
            var    result = bucket.ExecuteTryGet(key, out json);

            if (result.HasValue)
            {
                var obj = ModelExtensions.JsonToObject <T>(json.ToString());
                if (obj is ISiteObject)
                {
                    ((ISiteObject)obj).Site = site;
                }
                return(obj);
            }
            else
            {
                return(default(T));
            }
        }
Exemplo n.º 3
0
        public static IEnumerable <T> QueryList <T>(Site site, string viewName)
        {
            var bucket = site.GetClient();

            if (bucket != null)
            {
                var view = GetView(bucket, site.GetBucketName(), viewName, viewName);

                var idList = view.Select(it => it.ItemId).ToArray();

                return(bucket.ExecuteGet(idList).Select(it => ModelExtensions.JsonToObject <T>(it.Value.Value.ToString()))
                       .Select(it => { if (it is ISiteObject)
                                       {
                                           ((ISiteObject)it).Site = site;
                                       }
                                       return it; }));
            }
            else
            {
                return(new T[0]);
            }
        }