Example #1
0
        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);
        }
Example #2
0
        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);
        }