コード例 #1
0
ファイル: UserModel.cs プロジェクト: ajruckman/ContraWeb
        public static async Task <User?> Find(string username)
        {
            await using ContraWebDBContext contraDB = new ContraWebDBContext();

            user?match = contraDB.user.FirstOrDefault(v => v.username == username);

            return(match != null ? new User(match) : null);
        }
コード例 #2
0
        public static async Task <UserSession?> Find(string token)
        {
            await using ContraWebDBContext contraDB = new ContraWebDBContext();

            user_session?match = contraDB.user_session.SingleOrDefault(v => v.token == token);

            return(match == null ? null : new UserSession(match));
        }
コード例 #3
0
        public static async Task <UserSession?> Find(User user)
        {
            await using ContraWebDBContext contraDB = new ContraWebDBContext();

            user_session?match = contraDB.user_session.SingleOrDefault(v => v.username == user.Username);

            return(match == null ? null : new UserSession(match));
        }
コード例 #4
0
ファイル: UserModel.cs プロジェクト: ajruckman/ContraWeb
        public static List <User> List()
        {
            using ContraWebDBContext contraDB = new ContraWebDBContext();

            return(contraDB.user
                   .OrderBy(v => v.username)
                   .Select(v => new User(v))
                   .ToList());
        }
コード例 #5
0
ファイル: UserModel.cs プロジェクト: ajruckman/ContraWeb
        public static void Remove(User user)
        {
            using ContraWebDBContext contraDB = new ContraWebDBContext();

            user match = contraDB.user.Single(v => v.username == user.Username);

            contraDB.user.Remove(match);

            contraDB.SaveChanges();
        }
コード例 #6
0
ファイル: UserModel.cs プロジェクト: ajruckman/ContraWeb
        public static async Task Update(User user)
        {
            await using ContraWebDBContext contraDB = new ContraWebDBContext();

            user match = contraDB.user.Single(v => v.username == user.Username);

            match.salt     = user.Salt;
            match.password = user.Password;
            match.role     = UserRole.RoleToDatabaseName(user.Role);
            match.macs     = user.MACs.ToArray();

            await contraDB.SaveChangesAsync();
        }
コード例 #7
0
        public static async Task Delete(User user, string token)
        {
            await using ContraWebDBContext contraDB = new ContraWebDBContext();

            user_session?match = contraDB.user_session.FirstOrDefault(v => v.username == user.Username && v.token == token);

            if (match == null)
            {
                return;
            }

            contraDB.Remove(match);
            await contraDB.SaveChangesAsync();
        }
コード例 #8
0
ファイル: UserModel.cs プロジェクト: ajruckman/ContraWeb
        public static void Submit(User user)
        {
            using ContraWebDBContext contraDB = new ContraWebDBContext();

            contraDB.user.Add(new user
            {
                username = user.Username,
                salt     = user.Salt,
                password = user.Password,
                role     = UserRole.RoleToDatabaseName(user.Role),
                macs     = user.MACs.ToArray()
            });

            contraDB.SaveChanges();
        }
コード例 #9
0
        public static async Task Create(User user, string token)
        {
            await using ContraWebDBContext contraDB = new ContraWebDBContext();

            user_session dbSession = new user_session
            {
                username     = user.Username,
                token        = token,
                created_at   = DateTime.Now,
                refreshed_at = DateTime.Now
            };

            contraDB.Add(dbSession);
            await contraDB.SaveChangesAsync();
        }
コード例 #10
0
        public static async Task Refresh(User user, string token)
        {
            await using ContraWebDBContext contraDB = new ContraWebDBContext();

            user_session?match = contraDB.user_session.SingleOrDefault(v => v.username == user.Username && v.token == token);

            if (match == null)
            {
                return;
            }

            match.refreshed_at = DateTime.Now;

            contraDB.Update(match);
            await contraDB.SaveChangesAsync();
        }
コード例 #11
0
ファイル: UserModel.cs プロジェクト: ajruckman/ContraWeb
        public static async Task <List <User> > FindByMAC(PhysicalAddress mac)
        {
            await using ContraWebDBContext contraDB = new ContraWebDBContext();

            return(contraDB.user.Where(v => v.macs.Contains(mac)).Select(v => new User(v)).ToList());
        }