public ArrayList UpdateDict(string userKey, Dictionary <string, object>[] paramDicts)
        {
            Exception erro    = null;
            object    data    = null;
            string    message = null;

            try
            {
                Models.Data.base_datadic_tree model = paramDicts[0]["dict"].ToString().JsonToModel <Models.Data.base_datadic_tree>();
                using (var context = new Data.CbooEntities())
                {
                    context.base_datadic_tree.Attach(model);
                    context.ObjectStateManager.ChangeObjectState(model, System.Data.EntityState.Modified);
                    data = context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                erro    = ex;
                message = ex.Message;
            }
            ArrayList revList = new ArrayList();

            revList.Add(new Models.ServerResult()
            {
                succeed = erro == null, data = data, message = message
            });
            return(revList);
        }
        public ArrayList DeleteDict(string userKey, Dictionary <string, object>[] paramDicts)
        {
            Exception erro    = null;
            object    data    = null;
            string    message = null;

            try
            {
                Models.Data.base_datadic_tree model = paramDicts[0]["dict"].ToString().JsonToModel <Models.Data.base_datadic_tree>();
                using (var context = new Data.CbooEntities())
                {
                    context.ExecuteStoreCommand(string.Format(_deleteDict, model.item_key));
                    int count = (from dict in context.base_datadic_tree
                                 where dict.parent_id == model.parent_id
                                 select dict).Count();
                    if (count == 0)
                    {
                        context.ExecuteStoreCommand(string.Format(_setLeaf, model.parent_id));
                    }
                }
            }
            catch (Exception ex)
            {
                erro    = ex;
                message = ex.Message;
            }
            ArrayList revList = new ArrayList();

            revList.Add(new Models.ServerResult()
            {
                succeed = erro == null, data = data, message = message
            });
            return(revList);
        }
        public ArrayList AddDict(string userKey, Dictionary <string, object>[] paramDicts)
        {
            Exception erro    = null;
            object    data    = null;
            string    message = null;

            try
            {
                Models.Data.base_datadic_tree model = paramDicts[0]["dict"].ToString().JsonToModel <Models.Data.base_datadic_tree>();
                model.item_id = Guid.NewGuid();
                model.leaf    = true;
                using (var context = new Data.CbooEntities())
                {
                    string max = (from dict in context.base_datadic_tree
                                  where dict.parent_id == model.parent_id
                                  select dict.item_key).Max();
                    if (max == null)
                    {
                        model.item_key = (from dict in context.base_datadic_tree
                                          where dict.item_id == model.parent_id
                                          select dict.item_key).First() + "01";
                    }
                    else
                    {
                        model.item_key = (long.Parse(max, System.Globalization.NumberStyles.HexNumber) + 1).ToString("X");
                    }

                    context.base_datadic_tree.AddObject(model);
                    (from parent in context.base_datadic_tree
                     where parent.item_id == model.parent_id
                     select parent).First().leaf = false;

                    data = context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                erro    = ex;
                message = ex.Message;
            }
            ArrayList revList = new ArrayList();

            revList.Add(new Models.ServerResult()
            {
                succeed = erro == null, data = data, message = message
            });
            return(revList);
        }