Beispiel #1
0
        public bool registerNick(string nick, string hash, Uri clientUri)
        {
            using (MemoDbConnection conn = new MemoDbConnection())
            {
                conn.BeginTransaction();
                try {
                    using (MemoDbContext ctx = new MemoDbContext(conn.Connection, false))
                    {
                        var qu = from u in ctx.Users where
                            u.Username.Equals (nick)
                            select u;

                        if (qu.Count() > 0) {
                            foreach(User u in qu){
                                if(u.LastOnline.Add(timeout).CompareTo(DateTime.UtcNow) > 0){
                                    conn.CommitTransaction();
                                    return false;
                                } else {
                                    ctx.Users.Remove(u);
                                }
                            }
                        }

                        User nu = new User {
                            LastOnline = DateTime.UtcNow,
                            Username = nick,
                            Password = hash
                        };

                        ctx.Users.Add(nu);
                        ctx.SaveChanges();

                    }
                    conn.CommitTransaction();
                    return true;
                }
                catch
                {
                    conn.RollbackTransaction();
                    return false;
                }
            }
        }
 public MemoFromIdQueryHandler(MemoDbContext context)
 {
     _context = context;
 }