コード例 #1
0
        public ApiResponse <ApiModels.AuthUser> UpdateToken(Guid token)
        {
            DataModels.User dataUser = _dbContext.Users.FirstOrDefault(x => x.Token == token);

            if (dataUser == null)
            {
                return(new ApiResponse <ApiModels.AuthUser>("User with this token not found"));
            }

            dataUser.Token     = Guid.NewGuid();
            dataUser.ExpiredAt = DateTime.UtcNow.AddDays(TokenExpiredAtDays);

            _dbContext.SaveChanges();

            return(new ApiResponse <ApiModels.AuthUser>()
            {
                Ok = true,
                Data = ApiMapper.GetAuthUser(dataUser),
            });
        }
コード例 #2
0
        public ApiResponse <ApiModels.AuthUser> RegisterNewUser(string code)
        {
            if (string.IsNullOrWhiteSpace(code))
            {
                return(new ApiResponse <ApiModels.AuthUser>($"{nameof(code)} can't be null or white space"));
            }

            AccessToken vkAccessToken = _vkWebService.GetAccessToken(code);
            string      accessToken   = vkAccessToken.access_token;
            int         userId        = vkAccessToken.user_id;

            UserEntity userEntity = null;

            try
            {
                userEntity = _vkWebService.GetUserEntity(accessToken, userId);
            } catch (Exception ex)
            {
                _logger.Error($"{nameof(RegisterNewUser)} failed: {ex.Message}");
                return(new ApiResponse <ApiModels.AuthUser>(ex.Message));
            }

            if (userEntity == null)
            {
                return(new ApiResponse <ApiModels.AuthUser>("Something went wrong"));
            }

            if (userEntity.error != null)
            {
                return(new ApiResponse <ApiModels.AuthUser>(userEntity.error?.error_msg ?? "Unknown error"));
            }

            if (userEntity.response == null || userEntity.response.Count() != 1)
            {
                return(new ApiResponse <ApiModels.AuthUser>("No user data"));
            }


            VkModels.User vkUser = userEntity.response.First();

            DataModels.User dataUser = _dbContext.Users.FirstOrDefault(x => x.Id == userId);
            if (dataUser == null)
            {
                dataUser = new DataModels.User()
                {
                    Id          = userId,
                    FirstName   = vkUser.first_name,
                    LastName    = vkUser.last_name,
                    Photo50     = vkUser.photo_50,
                    AccessToken = accessToken,
                    Token       = Guid.NewGuid(),
                    ExpiredAt   = DateTime.UtcNow.AddDays(TokenExpiredAtDays),
                };

                _dbContext.Users.Add(dataUser);
            }
            else
            {
                dataUser.FirstName   = vkUser.first_name;
                dataUser.LastName    = vkUser.last_name;
                dataUser.Photo50     = vkUser.photo_50;
                dataUser.AccessToken = accessToken;
                dataUser.Token       = Guid.NewGuid();
                dataUser.ExpiredAt   = DateTime.UtcNow.AddDays(TokenExpiredAtDays);
            }

            _dbContext.SaveChanges();

            return(new ApiResponse <ApiModels.AuthUser>()
            {
                Ok = true,
                Data = ApiMapper.GetAuthUser(dataUser),
            });
        }