示例#1
0
        public async Task <AuthenticateResponse> CreateUser(CreateUserRequest model)
        {
            var user = _context.User.Add(new DB.Entity.User {
                Name = model.Username, Password = model.Password
            });
            await _context.SaveChangesAsync();

            var apiUser = DBToApiModel.ToApiModel(user.Entity);
            var token   = generateJwtToken(user.Entity);

            return(new AuthenticateResponse(apiUser, token));
        }
示例#2
0
        public async Task <AuthenticateResponse> Authenticate(AuthenticateRequest model)
        {
            var user = await _context.User.FirstOrDefaultAsync(x => x.Name == model.Username && x.Password == model.Password);

            if (user == null)
            {
                return(null);
            }
            var apiUser = DBToApiModel.ToApiModel(user);
            var token   = generateJwtToken(user);

            return(new AuthenticateResponse(apiUser, token));
        }
示例#3
0
        public async Task <AuthenticateResponse> CreateGoogleUser(CreateGoogleUserModel model)
        {
            var user = _context.User.FirstOrDefaultAsync(x => x.AuthId == model.Sub).Result;

            if (user == null)
            {
                user = _context.User.Add(new DB.Entity.User {
                    AuthId = model.Sub, Name = model.Name
                }).Entity;
                await _context.SaveChangesAsync();
            }
            var apiUser = DBToApiModel.ToApiModel(user);
            var token   = generateJwtToken(user);

            return(new AuthenticateResponse(apiUser, token));
        }
示例#4
0
        public async Task <IEnumerable <User> > GetLeaderBoard()
        {
            var users = _context.User.Where(x => x.ResolvedGamesCount > 0).OrderBy(x => x.Elo).ToList();

            return(DBToApiModel.ToApiModel(users));
        }