예제 #1
0
파일: KeyStore.cs 프로젝트: RyanShaul/dig
 public bool TryGetKey(string code, out Key key)
 {
     Db db = new DigDb();
     db.CommandText = @"
         SELECT * FROM `keys` WHERE code = ?code";
     db.Parameters.Add("code", code);
     return db.TryGetResult(ConvertResult, out key);
 }
예제 #2
0
파일: KeyStore.cs 프로젝트: RyanShaul/dig
 public bool TryGetKey(string code, string email, out Key key)
 {
     Db db = new DigDb();
     db.CommandText = @"
         SELECT * FROM `keys` k
         INNER JOIN users u ON k.user = u.id
         WHERE k.code = ?code AND u.email = ?email";
     db.Parameters.Add("code", code);
     db.Parameters.Add("email", email);
     return db.TryGetResult(ConvertResult, out key);
 }
예제 #3
0
파일: KeyStore.cs 프로젝트: RyanShaul/dig
        Key ConvertResult(DbResult result)
        {
            int id = result.Get<int>("user");
            User user;
            if (!userStore.TryGetUser(id, out user)) {
                throw new Exception("Unknown user");
            }

            Key key = new Key();
            key.User = user;
            key.Code = result.Get<string>("code");
            key.Created = result.Get<DateTime>("created");
            key.Valid = result.Get<int>("valid") == 1;

            return key;
        }
예제 #4
0
파일: KeyStore.cs 프로젝트: RyanShaul/dig
        public void Void(Key key)
        {
            Db db = new DigDb();
            db.CommandText = @"
                UPDATE `keys` SET valid = 0 WHERE code = ?code";
            db.Parameters.Add("code", key.Code);
            db.ExecuteNonQuery();

            Updates.AddUpdate(new VoidUpdate(key.User.Email, key.Code));
        }