Exemple #1
0
        private static SessionState CreateFromFilter(IQueryFilter filter, Database database = null)
        {
            Database db  = database ?? Db.For <SessionState>();
            var      dao = new SessionState();

            filter.Parameters.Each(p =>
            {
                dao.Property(p.ColumnName, p.Value);
            });
            dao.Save(db);
            return(dao);
        }
Exemple #2
0
 public ActionResult Update(Bam.Net.UserAccounts.Data.SessionState dao)
 {
     try
     {
         dao.Save();
         return(Json(new { Success = true, Message = "", Dao = dao.ToJsonSafe() }));
     }
     catch (Exception ex)
     {
         return(GetErrorResult(ex));
     }
 }
Exemple #3
0
        public object this[string key]
        {
            get
            {
                SessionState state = this.SessionStatesBySessionId.Where(ss => ss.Name == key).FirstOrDefault();
                if (state != null)
                {
                    if (state.ValueType.EndsWith(".json"))
                    {
                        return(Encoding.UTF8.GetString(state.Value).FromJson(Type.GetType(state.ValueType.Truncate(".json".Length))));
                    }
                    else
                    {
                        return(state.Value.FromBinaryBytes());
                    }
                }

                return(null);
            }
            set
            {
                SessionState state = this.SessionStatesBySessionId.Where(ss => ss.Name == key).FirstOrDefault();
                if (state == null)
                {
                    state      = this.SessionStatesBySessionId.AddNew();
                    state.Name = key;
                }

                object val = value;
                if (val != null)
                {
                    state.ValueType = val.GetType().AssemblyQualifiedName;
                    try
                    {
                        state.Value = val.ToBinaryBytes();
                    }
                    catch (SerializationException ex)
                    {
                        Log.Default.AddEntry("Session::Error serializing object of type {0}, using Json instead", LogEventType.Warning, ex, val.GetType().Name);
                        state.ValueType = $"{state.ValueType}.json";
                        state.Value     = Encoding.UTF8.GetBytes(val.ToJson());
                    }
                }
                else
                {
                    state.ValueType = string.Empty;
                    state.Value     = null;
                }

                state.Save();
            }
        }