コード例 #1
0
ファイル: ModelExtensions.cs プロジェクト: nguyenhuy2911/CMS
        public static T ToModel <T>(this IViewRow row, Site site, Func <Site, string, T> createModel)
            where T : IPersistable
        {
            var rawValue = row.Info["value"] as Dictionary <string, object>;

            var json = JsonConvert.SerializeObject(rawValue);

            var rawKey = ModelExtensions.GetRawDocumentKey(row.ItemId);

            var dummy = createModel(site, rawKey);

            var model = JsonToObject <T>(json);

            ((IPersistable)model).Init(dummy);

            return(model);
        }
コード例 #2
0
ファイル: ModelExtensions.cs プロジェクト: nguyenhuy2911/CMS
        public static T ToModel <T>(Site site, string key, string json, Func <Site, string, T> createModel)
            where T : IPersistable
        {
            var rawKey = ModelExtensions.GetRawDocumentKey(key);

            var dummy = createModel(site, rawKey);

            var model = JsonToObject <T>(json);

            ((IPersistable)model).Init(dummy);

            if (model is ISiteObject)
            {
                ((ISiteObject)model).Site = site;
            }
            return(model);
        }
コード例 #3
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));
            }
        }