public async Task <FridgeExternalRegisterLoginResults> Google_Login_Register(string code) { // Initiate Facebook app credentials var client_id = appSettings.googleapp.client_id; var client_secret = appSettings.googleapp.client_secret; var redirect_uri = appSettings.googleapp.redirect_url; var userData = await externalManager.ExcuteOAuth_CodeFlow_google(client_id, client_secret, code, redirect_uri); RegisterLoginResults registerLoginResults = await externalManager.LoginOrRegisterExternal(userData); FridgeExternalRegisterLoginResults results = await PackResults(registerLoginResults); return(results); }
public async Task <FridgeExternalRegisterLoginResults> PackResults(RegisterLoginResults registerLoginResults) { var resutlUser = registerLoginResults.User; // if operation is register if (registerLoginResults.isSuccessful && registerLoginResults.operation == "register") { // set basic register info var appicationUser = await GetById_Db(resutlUser.Id); var UpdatedUser = await RegisterBasicInfo(appicationUser); var _IdentityUserDto = await identityManager.ApplicationUser_ToUserDto(UpdatedUser); // convert User to UserDtor var userDto = mapper.Map <UserDto>(_IdentityUserDto); userDto.userFriends = appicationUser.userFriends; userDto.invitationcode = appicationUser.secretId; userDto.externalProvider = (await identityManager.GetExternalLoginAsync(userDto.Id))?.LoginProviderName; // pack results FridgeExternalRegisterLoginResults fridgeExternalRegister = new FridgeExternalRegisterLoginResults() { errors = registerLoginResults.errors, errorsDescription = registerLoginResults.errorsDescription, operation = registerLoginResults.operation, User = userDto }; return(fridgeExternalRegister); } // if operation is login if (registerLoginResults.isSuccessful && registerLoginResults.operation == "login") { var appicationUser = await GetById_Db(resutlUser.Id); var _IdentityUserDto = await identityManager.ApplicationUser_ToUserDto(appicationUser); // convert User to UserDtor var userDto = mapper.Map <UserDto>(_IdentityUserDto); userDto.userFriends = appicationUser.userFriends; userDto.invitationcode = appicationUser.secretId; userDto.externalProvider = (await identityManager.GetExternalLoginAsync(userDto.Id))?.LoginProviderName; // pack results FridgeExternalRegisterLoginResults fridgeExternalLogin = new FridgeExternalRegisterLoginResults() { errors = registerLoginResults.errors, errorsDescription = registerLoginResults.errorsDescription, operation = registerLoginResults.operation, User = userDto }; return(fridgeExternalLogin); } // if there is an error pack it and return the results FridgeExternalRegisterLoginResults fridgeExternalError = new FridgeExternalRegisterLoginResults() { errors = registerLoginResults.errors, errorsDescription = registerLoginResults.errorsDescription, operation = registerLoginResults.operation, User = null }; return(fridgeExternalError); }