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)); } }
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)); } }
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]); } }