示例#1
0
        public async Task <ResponseEnvelope <string> > RegisterUserUsingSocialAsync(string accessToken, AuthProvider provider)
        {
            try
            {
                if (string.IsNullOrEmpty(accessToken))
                {
                    return(await ResponseEnvelope <string> .BadRequestAsync(INVALID_DATA));
                }
                if (provider == AuthProvider.Forms)
                {
                    return(await ResponseEnvelope <string> .BadRequestAsync(INVALID_DATA));
                }
                Req_SocialRequest_Dto dto = new Req_SocialRequest_Dto()
                {
                    AccessToken = accessToken, Provider = Enum.GetName(typeof(Enums.AuthProvider), provider).ToLower()
                };
                var response = await this.ClientApi.PostJsonRequestAsync <string, Req_SocialRequest_Dto>(WebApi.ApiSocialRegistration, dto);

                return(response);
            }
            catch (NoInternetConnectionException)
            {
                return(await ResponseEnvelope <string> .ErrorAsync(NO_INTERNET_CONNECTION));
            }
            catch (Exception ex)
            {
                return(await ResponseEnvelope <string> .ErrorAsync(INTERNAL_ERROR, ex));
            }
        }
示例#2
0
        public async Task <ResponseEnvelope <UserModel> > SocialLoginAsync(string accessToken, AuthProvider provider)
        {
            try
            {
                if (string.IsNullOrEmpty(accessToken))
                {
                    return(await ResponseEnvelope <UserModel> .BadRequestAsync(INVALID_DATA));
                }
                if (provider == AuthProvider.Forms)
                {
                    return(await ResponseEnvelope <UserModel> .BadRequestAsync(INVALID_DATA));
                }
                Req_SocialRequest_Dto dto = new Req_SocialRequest_Dto()
                {
                    AccessToken = accessToken, Provider = Enum.GetName(typeof(Enums.AuthProvider), provider).ToLower()
                };
                var response = await this.ClientApi.PostJsonRequestAsync <UserProfile_Dto, Req_SocialRequest_Dto>(WebApi.ApiSocialLogin, dto);

                if (response.Ack == AckCode.SUCCESS)
                {
                    //update user data in local db
                    userRepository.ClearUser();
                    UserEntity dbUser = response.Data.ToDbEntity();
                    if (dbUser != null)
                    {
                        userRepository.SaveUser(dbUser);
                        this.RefreshProxyData();
                    }
                    return(await ResponseEnvelope <UserModel> .SuccessAsync(response.Data.ToModel()));
                }

                return(await ResponseEnvelope <UserModel> .ErrorAsync(response.Message));
            }
            catch (NoInternetConnectionException)
            {
                return(await ResponseEnvelope <UserModel> .ErrorAsync(NO_INTERNET_CONNECTION));
            }
            catch (Exception ex)
            {
                return(await ResponseEnvelope <UserModel> .ErrorAsync(INTERNAL_ERROR, ex));
            }
        }