public RegistrationResponse AddOrFindUser(GoogleResponseJson response) { var collection = _mongoDatabase.GetCollection <User>("Users"); var user = collection.Find(us => us.UserId == response.email); if (user.Count() != 0) { return(new RegistrationResponse { PicUrl = user.First().PictureUrl, NicknameDateOfChange = user.First().NicknameDateOfChange, UserId = user.First().UserId, UserNickname = user.First().UserNickname }); } var date = DateTimeOffset.UtcNow; var newUser = new User(response.email, response.picture, date); collection.InsertOne(newUser); var toReturn = new RegistrationResponse { NicknameDateOfChange = date, PicUrl = response.picture, UserId = response.email, UserNickname = response.email }; return(toReturn); }
public string SignUp(string idToken) { GoogleResponseJson response = new GoogleResponseJson(); GoogleIdTokenVerifyer verifyer = new GoogleIdTokenVerifyer(); response = verifyer.Verify(idToken); if (response.IsEmpty) { return(null); } User newUser = new User(response.sub); _userCollection.Add(response.sub, newUser); return(response.email); }
public RegistrationResponse SignUp(string idToken) { GoogleResponseJson response = new GoogleResponseJson(); GoogleIdTokenVerifyer verifyer = new GoogleIdTokenVerifyer(); response = verifyer.Verify(idToken); if (response.IsEmpty) { return(null); } if (response.email == null) { return(null); } var collection = db.GetCollection <User>("Users"); var iUser = collection.FindSync(us => us.UserId == response.email); var result = iUser.FirstAsync(); if (!result.IsFaulted) { User user = result.Result; return(new RegistrationResponse { PicUrl = user.PictureUrl, NicknameDateOfChange = user.NicknameDateOfChange, UserId = user.UserId, UserNickname = user.UserNickname }); } DateTimeOffset date = DateTimeOffset.Now; User newUser = new User(response.email, response.picture, date); collection.InsertOne(newUser); RegistrationResponse toReturn = new RegistrationResponse { NicknameDateOfChange = date, PicUrl = response.picture, UserId = response.email, UserNickname = response.email }; return(toReturn); }