Example #1
0
        public static Session GetLastSession(Account account)
        {
            var ids = Config.instance.mainConnection.LoadIdsByConditions(
                TableSpec.instance,
                new ComparisonCondition(
                    TableSpec.instance.getColumnSpec(TableSpec.FIELD_ACCOUNTID),
                    ComparisonType.EQUAL,
                    account.id.ToString()
                    ),
                Diapasone.first,
                new JoinSpec[0],
                new SortSpec[] {
                new SortSpec(
                    TableSpec.instance.getColumnSpec(TableSpec.FIELD_LASTHUMANACTIVITY),
                    false
                    )
            }
                );

            if (ids.Count < 1)
            {
                throw new NotFoundInDBException(TableSpec.instance.getColumnSpec(TableSpec.FIELD_ACCOUNTID), account.id.ToString());
            }

            return(Session.LoadById(SessionKey.Parse(ids[0])));
        }
Example #2
0
        public static Session create(Account account)
        {
            string key = null;

            Config.Transactional(transaction => {
                Config.instance.mainConnection.lockTable(transaction, TableSpec.instance);

                do
                {
                    key = Util.RandomString(32, Util.RandomSource.LETTERS_DIGITS);
                } while(Config.instance.mainConnection.LoadByIds(transaction, TableSpec.instance, new List <string>()
                {
                    key
                }).Count > 0);

                Config.instance.mainConnection.insert(
                    transaction,
                    TableSpec.instance,
                    new Dictionary <string, string>()
                {
                    { TableSpec.FIELD_SESSIONKEY, key },
                    { TableSpec.FIELD_ACCOUNTID, account.id.ToString() },
                    { TableSpec.FIELD_LASTACTIVITY, DateTime.Now.ToUTCString() },
                    { TableSpec.FIELD_LASTHUMANACTIVITY, DateTime.Now.ToUTCString() },
                    { TableSpec.FIELD_LASTURL, "" },
                    { TableSpec.FIELD_ISDELETED, "0" },
                }
                    );
            });
            return(Session.LoadById(SessionKey.Parse(key)));
        }
Example #3
0
        public static Session LoadByKey(string sessionKey)
        {
            Session result = LoadById(SessionKey.Parse(sessionKey));

            if (result.isDeleted)
            {
                throw new NotFoundInDBException(TableSpec.instance, sessionKey);
            }
            return(result);
        }