Example #1
0
 public WidgetContext(FormContext formContext) : base()
 {
     _parameters = new DynamicObj();
     FormContext = formContext;
     IsViewMode  = formContext.IsViewMode;
     AppContext  = formContext.Context;
 }
Example #2
0
        /// <summary>
        /// 根据指定会话ID获取会话信息,如果指定会话不在,则返回空
        /// </summary>
        /// <param name="SessionID"></param>
        /// <returns></returns>
        public string GetCookieValue(Guid CookieID)
        {
            string json = "";

            RemoveExpiresCookie();

            DynamicObj rec = db.GetDynamicObj(string.Format("select * from TSys_LoginUserCookie with(nolock) where CookieID='{0}'", CookieID));

            if (rec != null)
            {
                json = rec.Get <string>("UserInfoEntity");

                DateTime readTime = rec.Get <DateTime>("ReadTime");
                DateTime Expires  = rec.Get <DateTime>("Expires");

                //取到两者之前间隔,则可知道Cookie保存长度
                TimeSpan ts = Expires - readTime;

                Expires.AddTicks(ts.Ticks);

                //再次更新
                db.ExecuteCommand(string.Format("update TSys_LoginUserCookie set ReadTime={0},Expires={1} where CookieID='{2}'", db.Function.DateTimeValue(DateTime.Now), db.Function.DateTimeValue(Expires), CookieID));
            }
            return(json);
        }
Example #3
0
        public override bool OnInteraction(List <DynamicObj> ListDynamicObjs, DynamicObj target, NATURE nature)
        {
            if (target.Name == "Teleport")
            {
                g_script.AddCommand(new CommandChangeMap((target as Teleport).sMApName, (target as Teleport).fMapPosX, (target as Teleport).fMapPosY));
            }

            // flyttad till quest
            //if (target.Name == "bob")
            //{
            //    // då vill man att nåt ska hända, typ rita dialog
            //    //var listLines = new List<string>()
            //    //{
            //    //    "bob säger hallo"
            //    //};
            //    //Command.g_engine.ShowDialog(listLines);

            //    // Typ funkar, spagetti som fan. I för att aktivera och space för att lämna så som hantera knappar ser ut.
            //    g_script.AddCommand(new CommandShowDialog(new List<string>()
            //    {
            //        "bob säger hallo"
            //    }));

            //}

            return(false);
        }
Example #4
0
 // target x and y position in world space, duration hur fort det ska gå
 public CommandMoveTo(DynamicObj myObject, float x, float y, float duration = 0.0f)
 {
     TargetPosX    = x;
     TargetPosY    = y;
     TimeSoFar     = 0.0f;
     Duration      = Math.Max(duration, 0.001f);
     this.myObject = myObject;
 }
Example #5
0
        /// <summary>
        /// 获取保存在当前库
        /// </summary>
        /// <returns></returns>
        public IUserSession <T> GetUserSession(AppSession <T> appSession)
        {
            string CookieValue = GetCookies(Options.SessionCookieName);

            if (CookieValue.IsWhiteSpace()) //找不到Cookie,则表示过期了
            {
                return(null);
            }



            DynamicObj cookie    = LibHelper.JSON.DeserializeDynamicObj(CookieValue.Decrypt());
            Guid       SessionID = cookie.Get <Guid>("SessionID");

            //再次从会话Session中查找,找到,就直接返回,没找到,则从Cookie中加载
            IUserSession <T> u = appSession.GetUserSession(SessionID);

            if (u != null)
            {
                return(u);
            }
            string User;

            if (Options.IsSqlSaveCookie)
            {
                User = App.GetAppService <ICookieService>().GetCookieValue(SessionID).Decrypt();
            }
            else
            {
                User = cookie.Get <string>("User");
            }
            try
            {
                u = LibHelper.JSON.Deserialize <UserSession <T> >(User);
                if (u != null)
                {
                    Func <string, IAppUser> parseUser = Options.ParseUser;
                    if (parseUser != null && u.ExtendInfo.IsNotWhiteSpace()) //还原真实的用户信息
                    {
                        IAppUser au = parseUser(u.ExtendInfo);
                        if (au != null)
                        {
                            u.User = au;
                        }
                        else
                        {
                            u.User = null;//则当前操作者并没有用户信息,视为游客
                        }
                        u.ExtendInfo = "";
                    }
                }
            }
            catch (Exception ex)
            {
                Loger.Error("读取Cookie用户信息出错误" + ex.Message);
            }
            return(u);
        }
Example #6
0
 public override bool OnUse(DynamicObj myobject)
 {
     if (myobject != null)
     {
         Creature dyn = (Creature)myobject;
         dyn.Health = Math.Min(dyn.Health + 10, dyn.MaxHealth); // inte mer än max
     }
     return(true);                                              // försvinner
 }
        public object ConvertFromDictionary(IDictionary dict, Func <object, object> valueConverter)
        {
            DynamicObj dynamicObj = new DynamicObj();

            foreach (string key in dict.Keys)
            {
                dynamicObj.Put(key, valueConverter(dict[key]));
            }
            return(dynamicObj);
        }
Example #8
0
        public void Run()
        {
            var obj = new DynamicObj();

            obj.Add("Name", "Xyz");
            obj.Add("Age", 10);
            obj.Add("Price", 2000.0);

            //var exp = "(Age + 11)";
        }
Example #9
0
        public override bool OnUse(DynamicObj myobject)
        {
            if (myobject != null)
            {
                Creature dyn = (Creature)myobject;
                dyn.MaxHealth += 10;
                dyn.Health     = dyn.MaxHealth;
            }

            return(true); // Remove from inventory
        }
Example #10
0
        /// <summary>
        /// 将指定对象类型转为
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public static DynamicObj GetObjectPropertys(Type type)
        {
            DynamicObj obj = new DynamicObj();

            PropertyInfo[] ps = type.GetProperties();
            foreach (PropertyInfo p in ps)
            {
                obj.Set(p.Name, p);
            }
            return(obj);
        }
Example #11
0
        public override bool OnInteraction(List <DynamicObj> ListDynamicObjs, DynamicObj target, NATURE nature)
        {
            if (target.Name == "Teleport")
            {
                g_script.AddCommand(new CommandChangeMap((target as Teleport).sMApName, (target as Teleport).fMapPosX, (target as Teleport).fMapPosY));
            }



            return(false);
        }
Example #12
0
        public static DynamicObj ReadAsDynamicObj(this IDataRecord reader)
        {
            var d = new DynamicObj();

            for (int i = 0; i < reader.FieldCount; i++)
            {
                d.Add(reader.GetName(i), reader.GetValue(i));
            }

            return(d);
        }
Example #13
0
        protected virtual void OnRenderComplete()
        {
            var pageTitle = new DynamicObj();
            var entity    = this.FormContext.Entity;

            if (entity != null)
            {
                pageTitle.Add(ViewConstant.PageTitle, entity.Text);
            }

            View.PageTitle = pageTitle;
        }
        public IDictionary ConvertToDictionary(object obj, Func <object, object> valueConverter)
        {
            DynamicObj  dynamicObj = obj as DynamicObj;
            IDictionary dictionary = new Dictionary <string, object>();

            string[] keys = dynamicObj.Keys;
            foreach (string text in keys)
            {
                dictionary.Add(text, valueConverter(dynamicObj.GetValue(text)));
            }
            return(dictionary);
        }
Example #15
0
        public override bool OnInteraction(List <DynamicObj> vecDynobs, DynamicObj target, NATURE nature)
        {
            if (target.Name == "sarah")
            {
                //g_script.AddCommand(new CommandShowDialog(new List<string>()
                //{
                //    "Sarah"
                //}));


                //X(ShowDialog({ "[Sarah]", "You have no additional", "quests!" }));

                //if (g_engine.HasItem(Assets.Instance.GetItem("Health Boost")))
                if (g_engine.HasItem(Assets.Instance.GetItem("healthboost"))) // healthboost
                {
                    //X(ShowDialog({ "[Sarah]", "Woooooow! You have a health", "boost!" }));
                    g_script.AddCommand(new CommandShowDialog(new List <string>()
                    {
                        "Woooooow! You have a health boost!"
                    }));
                }
                else
                {
                    //X(ShowDialog({ "[Sarah]", "Boooooo! You dont have a health", "boost!" }));
                    g_script.AddCommand(new CommandShowDialog(new List <string>()
                    {
                        "Boooooo! You dont have a health boost!"
                    }));
                }
            }


            if (target.Name == "bob")
            {
                //X(ShowDialog({ "[Bob]", "I need you to do", "something for me!" }));
                //X(ShowDialog({ "[Bob]", "Predictably, there are", "rats in my basement!"}));
                g_script.AddCommand(new CommandShowDialog(new List <string>()
                {
                    "I need you to do", "something for me!"
                }));



                //X(AddQuest(new cQuest_BobsQuest()));
                //g_script.AddQuest(new cQuest_BobsQuest());
                g_engine.AddQuest(new cQuest_BobsQuest());
            }

            return(false);
        }
Example #16
0
        private static void InitEntity(int itemTyp, DBEntity ent)
        {
            DynamicObj dataParam = new DynamicObj();

            dataParam.Add("DEFAULTLAYOUT", itemTyp);

            foreach (var fieldK in ent.Fields)
            {
                fieldK.Value.ControlType = GetDefaultControl(fieldK.Value.Type);
                fieldK.Value.Init();
            }

            ent.Init(dataParam);
        }
Example #17
0
        protected override void OnPrepareRow(DataListContext context, DataListDefinition defn, DynamicObj row, DbObject dataRow)
        {
            var pickerContext = context as PickerListContext;

            if (pickerContext.FormModelMapping != null)
            {
                var mapping = new DynamicObj();
                foreach (var c in pickerContext.FormModelMapping)
                {
                    mapping.Add(c.Key, dataRow.Get <object>(c.Value.ToString(), null));
                }

                row.Add("_ModelMapping", mapping);
            }
        }
Example #18
0
        public virtual void Init(DynamicObj dataParam)
        {
            if (_isInit)
            {
                return;
            }

            InitRelations();

            DefaultItemTypeId = dataParam.Get("DEFAULTLAYOUT", 0);

            BuildDefaultQueries();
            PrepareComputeOrderSeq();

            _isInit = true;
        }
Example #19
0
        private static List <DynamicObj> PrepareButtonNLinks(StackAppContext appContext, IDBEntity entity)
        {
            var actions = EntityActionService.GetActions(appContext, entity.EntityId, EntityLayoutType.View);

            var coll = new List <DynamicObj>();

            foreach (var f in actions)
            {
                var d = new DynamicObj();
                d.Add("Id", f.Id);
                d.Add("Text", f.Text);
                coll.Add(d);
            }

            return(coll);
        }
Example #20
0
        public override bool OnInteraction(List <DynamicObj> vecDynobs, DynamicObj target, NATURE nature)
        {
            if (target.Name == "sarah")
            {
                //X(ShowDialog({ "[Sarah]", "You are doing Bob's", "quest!" }));

                g_script.AddCommand(new CommandShowDialog(new List <string>()
                {
                    "bobs quest "
                }));

                return(true);
            }

            return(false);
        }
Example #21
0
        public void AddFieldProps(string fieldId, string propName, object value)
        {
            if (FieldValues == null)
            {
                FieldValues = new DynamicObj();
            }

            var data = FieldValues.Get <DynamicObj>(fieldId, null);

            if (data == null)
            {
                data = new DynamicObj();
            }

            data.Add(propName, value, true);

            FieldValues.Add(fieldId, data, true);
        }
Example #22
0
        public MainForm()
        {
            InitializeComponent();

            CreateStandardControls();

            UIProject.Instance().openDefaultProject();

            DynamicObj.initDynamic();
            m_deserializeDockContent = new DeserializeDockContent(GetContentFromPersistString);

            vS2012ToolStripExtender1.DefaultRenderer = _system;
            vS2012ToolStripExtender1.VS2012Renderer  = _custom;

            EventManager.RegisterAudience(Constant.OpenLayoutEvent, new EventHandler <object>(this.OpenRender));
            EventManager.RegisterAudience(Constant.StatusInfoChange, new EventHandler <object>(this.StatusInfoChange));
            EventManager.RegisterAudience(Constant.ProjectChange, new EventHandler <object>(this.ProjectChange));
        }
Example #23
0
        /// <summary>
        /// 保存Cookie信息,并得到ID
        /// 注意,这里不能使用事务锁
        /// </summary>
        /// <param name="session"></param>
        /// <returns></returns>
        public JsonReturn SaveCookie(Guid CookieID, string CookieName, string CookieValue, DateTime ExpireTime)
        {
            DateTime today = DateTime.Now;

            if (ExpireTime < today)
            {
                return(JsonReturn.RunFail("无法存储Cookie信息:该Cookie已失效"));
            }

            //先检测是否存在该CookieID
            if (CookieID != Guid.Empty) //当前该Cookie还保存,可能是存放的另外一个
            {
                //删除现有保存的Cookie
                db.ExecuteCommand(string.Format("delete from TSys_LoginUserCookie where CookieID='{0}'", CookieID));
            }
            else
            {
                CookieID = Guid.NewGuid();//创建一个新的CookieID,用于标识该Cookie
            }
            try
            {
                DynamicObj Cookie = new DynamicObj();
                Cookie.Set("CookieID", CookieID);
                Cookie.Set("UserInfoEntity", CookieValue);
                Cookie.Set("Expires", ExpireTime);
                Cookie.Set("CookieName", CookieName);
                Cookie.Set("ReadTime", DateTime.Now);

                //仅为单表,暂不进行事务处理
                if (db.SaveNewObject(Cookie, "TSys_LoginUserCookie"))
                {
                    return(JsonReturn.RunSuccess(CookieID));
                }
                else
                {
                    return(JsonReturn.RunFail("无法存储Cookie信息"));
                }
            }
            catch
            {
                return(JsonReturn.RunFail("存储Cookie信息时出现异常"));
            }
        }
        protected override void BuildDataRowActions(DataListContext context, DynamicObj row)
        {
            var rowId   = row.Get(ViewConstant.RowId, 0);
            var actions = new List <ActionInfo>();

            if (context.Context.UserInfo.HasAccess(context.SourceEntityId, AccessType.Update))
            {
                var actionContext = new ActionContext(null, ActionType.Edit, "BTN_EDIT");
                actionContext.Query          = new RequestQueryString();
                actionContext.Query.EntityId = context.SourceEntityId;
                actionContext.Query.ItemId   = rowId;

                var ac = PageActionCreator.Create(actionContext);
                ac.LinkTarget = "POPUP";

                actions.Add(ac);
            }

            row.Add("_RowActions", actions);
        }
Example #25
0
        private static List <DynamicObj> PrepareFieldList(IDBEntity entity)
        {
            var fields = entity.GetLayoutFields(EntityLayoutType.None);

            var coll = new List <DynamicObj>();

            foreach (var f in fields)
            {
                var d = new DynamicObj();
                d.Add("Name", f.Name);
                d.Add("Text", f.Text);
                d.Add("Type", f.Type);
                d.Add("WidgetType", f.ControlType);
                d.Add("Isrequired", f.IsRequired);
                d.Add("ShouldFullRow", EntityLayoutService.IsWidgetOnFullRow(f.ControlType));
                coll.Add(d);
            }

            return(coll);
        }
Example #26
0
        protected DynamicObj PrepareRowData(DbObject dataRow, DataListContext context, DataListDefinition defn)
        {
            var row = new DynamicObj();

            row.Add(ViewConstant.RowId, dataRow.Get(context.DbQuery.ItemIdField, 0));
            foreach (var field in context.DbQuery.Fields)
            {
                var val = field.Field.ResolveDbValue(dataRow);
                if (context.Fields.Keys.Contains(field.FieldName))
                {
                    row.Add(context.Fields[field.FieldName].WidgetId, OnPrepareCell(context, defn, field.FieldName, val, row), true);
                }
                else
                {
                    row.Add(field.FieldName, val);
                }
            }
            OnPrepareRow(context, defn, row, dataRow);

            return(row);
        }
Example #27
0
        public static T CreateObject <T>(DbDataReader dr, DynamicObj ps, Dictionary <string, string> FieldMap2Property) where T : new()
        {
            T entity = new T();

            for (int i = 0; i < dr.FieldCount; i++)
            {
                string fn = dr.GetName(i);
                if (FieldMap2Property.ContainsKey(fn))
                {
                    fn = FieldMap2Property[fn];
                }

                PropertyInfo p = ps.Get(fn) as PropertyInfo;
                if (p != null && p.CanWrite)
                {
                    object v = dr.GetValue(i);
                    p.SetValue(entity, v.GetObjectValue(p.PropertyType), null);
                }
            }
            return(entity);
        }
Example #28
0
        internal static T CreateObjectRec <T>(DbDataReader dr, DynamicObj ps, Action <DbDataReader> OtherSetMethod) where T : new()
        {
            T entity = new T();

            for (int i = 0; i < dr.FieldCount; i++)
            {
                string fn = dr.GetName(i);

                PropertyInfo p = ps.Get(fn) as PropertyInfo;
                if (p != null && p.CanWrite)
                {
                    object v = dr.GetValue(i);
                    p.SetValue(entity, v.GetObjectValue(p.PropertyType), null);
                }

                if (OtherSetMethod != null)
                {
                    OtherSetMethod(dr);
                }
            }
            return(entity);
        }
Example #29
0
        public IActionResult StackScriptFunction([FromQuery] int id, [FromBody] string scr)
        {
            var args = new Dictionary <string, object>();

            // FieldRequestInfo requestInfo = new  FieldRequestInfo();
            // requestInfo.Value = id;
            // args.Add("input", requestInfo);

            // FieldActionResponse output = new FieldActionResponse(null);
            // var sts = new StackErp.StackScript.StackScriptExecuter().ExecuteFunction(appContext, scr, args, output);

            /////////////////////////////////////////////////////////////////////

            var d = StackErp.Core.EntityMetaData.Get(99).GetSingle(appContext, id);

            args.Add("model", d);

            DynamicObj output = new DynamicObj();
            var        sts    = new StackErp.StackScript.StackScriptExecuter().ExecuteFunction(appContext, scr, args, output);

            return(Json(new { sts, output }));
        }
Example #30
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            if (reader.TokenType == JsonToken.Null)
            {
                return(null);
            }
            var token = JToken.Load(reader);
            // if (!(token is JValue))
            //     throw new JsonSerializationException("Token was not a primitive");
            //string s = (string)reader.Value;

            var d = DynamicObj.Parse(token.ToString());

            if (objectType != typeof(DynamicObj))
            {
                var i = Activator.CreateInstance(objectType);
                objectType.GetField("_d").SetValue(i, d._d);

                return(i);
            }
            return(d);
        }
Example #31
0
        public bool Save(string objectName, DynamicObj obj)
        {
            DateTime _date = DateTime.Now;
            dynamic dyna = obj;
            dyna.system_last_updated_time = _date.ToString("yyyMMddHHmmss");
            dyna.system_last_updated_date = _date.ToString("yyyMMdd");

            return SaveDocument(objectName, dyna.ToBsonDocument());
        }
Example #32
0
 public bool SaveUpdate(string objectName, DynamicObj obj)
 {
     dynamic dyna = obj;
     return SaveDocument(objectName, dyna.ToBsonDocument());
 }
Example #33
0
 public void Create(string objectName, DynamicObj obj, IMongoQuery query)
 {
     CreateDocument(objectName, obj.ToBsonDocument(), query);
 }
Example #34
0
 public long GetNextSquence(string SequenceName)
 {
     try
     {
         MongoCollection sequenceCollection = Database.GetCollection("counters");
         FindAndModifyArgs args = new FindAndModifyArgs();
         args.Query = Query.EQ("_id", SequenceName);
         args.Update = MongoDB.Driver.Builders.Update.Inc("seq", 1);
         FindAndModifyResult result = sequenceCollection.FindAndModify(args);
         return result.ModifiedDocument.GetElement("seq").Value.ToInt64();
     }
     catch
     {
         dynamic bs = new DynamicObj();
         bs._id = SequenceName;
         bs.seq = 2;
         Insert("counters", bs);
         return 1;
     }
 }