Пример #1
0
        //public Task<ProfileMediaDTO> SetAvatarAsync(string base64PickedAvatar, CancellationTokenSource cancellationTokenSource) =>
        //    Task<ProfileMediaDTO>.Run(async () => {
        //        if (!CrossConnectivity.Current.IsConnected) {
        //            throw new InvalidOperationException(AppConsts.ERROR_INTERNET_CONNECTION);
        //        }

        //        ProfileMediaDTO addedAvatar = null;

        //        SetProfileAvatarRequest setProfileAvatarRequest = new SetProfileAvatarRequest() {
        //            Url = GlobalSettings.Instance.Endpoints.ProfileEndpoints.SetProfileAvatarEndPoint,
        //            AccessToken = GlobalSettings.Instance.UserProfile.AccesToken,
        //            Data = new SetProfileAvatarDataModel() {
        //                ImageDataBase64 = base64PickedAvatar,
        //                ImageFileName = string.Format("{0}.{1}", Guid.NewGuid(), ProfileMediaService.PNG_IMAGE_FORMAT)
        //            }
        //        };

        //        try {
        //            SetProfileAvatarResponse setProfileAvatarResponse = await _requestProvider.PostAsync<SetProfileAvatarRequest, SetProfileAvatarResponse>(setProfileAvatarRequest);

        //            if (setProfileAvatarResponse != null) {
        //                addedAvatar = new ProfileMediaDTO() {
        //                    Id = setProfileAvatarResponse.Id,
        //                    Name = setProfileAvatarResponse.Name,
        //                    ThumbnailUrl = setProfileAvatarResponse.ThumbnailUrl,
        //                    Url = setProfileAvatarResponse.Url
        //                };
        //            }
        //            else {
        //                throw new InvalidOperationException(ProfileService._SET_AVATAR_COMMON_ERROR_MESSAGE);
        //            }
        //        }
        //        catch (ServiceAuthenticationException exc) {
        //            _identityUtilService.RefreshToken();

        //            throw exc;
        //        }
        //        catch (Exception exc) {
        //            Crashes.TrackError(exc);

        //            throw exc;
        //        }

        //        return addedAvatar;
        //    }, cancellationTokenSource.Token);

        public Task <SetProfileSettingsResponse> SetProfileAsync(SetProfileDataModel setProfileDataModel, CancellationTokenSource cancellationTokenSource) =>
        Task <SetProfileSettingsResponse> .Run(async() => {
            if (!CrossConnectivity.Current.IsConnected)
            {
                throw new InvalidOperationException(AppConsts.ERROR_INTERNET_CONNECTION);
            }

            SetProfileSettingsResponse setProfileSettingsResponse = null;

            SetProfileSettingsRequest setProfileSettingsRequest = new SetProfileSettingsRequest()
            {
                AccessToken = GlobalSettings.Instance.UserProfile.AccesToken,
                Data        = setProfileDataModel,
                Url         = GlobalSettings.Instance.Endpoints.ProfileEndpoints.SetProfileSettingsEndPoint
            };

            try {
                setProfileSettingsResponse = await _requestProvider.PostAsync <SetProfileSettingsRequest, SetProfileSettingsResponse>(setProfileSettingsRequest);

                if (setProfileSettingsResponse == null)
                {
                    throw new InvalidOperationException(SET_PROFILE_SETTINGS_COMMON_ERROR_MESSAGE);
                }
            }
            catch (ServiceAuthenticationException exc) {
                _identityUtilService.RefreshToken();

                throw exc;
            }
            catch (HttpRequestExceptionEx exc) {
                SetProfileSettingsErrorResponse crutch = JsonConvert.DeserializeObject <SetProfileSettingsErrorResponse>(exc.Message);

                throw new InvalidOperationException(string.Format("{0}{1}{2}{3}{4}{5}",
                                                                  crutch.Empty?.FirstOrDefault(),
                                                                  crutch.ProvidedPassword?.FirstOrDefault(),
                                                                  crutch.CurrentPassword?.FirstOrDefault(),
                                                                  crutch.Email?.FirstOrDefault(),
                                                                  crutch.FirstName?.FirstOrDefault(),
                                                                  crutch.LastName?.FirstOrDefault()));
            }
            catch (Exception exc) {
                Crashes.TrackError(exc);

                throw exc;
            }

            return(setProfileSettingsResponse);
        }, cancellationTokenSource.Token);
Пример #2
0
        public Task <bool> ChargeUserProfileAsync(SetProfileSettingsResponse setProfileSettingsResponse, bool restartSignalHubs) =>
        Task <bool> .Run(async() => {
            if (setProfileSettingsResponse != null)
            {
                GlobalSettings.Instance.UserProfile.About            = setProfileSettingsResponse.About;
                GlobalSettings.Instance.UserProfile.MySports         = setProfileSettingsResponse.MySports;
                GlobalSettings.Instance.UserProfile.Children         = setProfileSettingsResponse.Children;
                GlobalSettings.Instance.UserProfile.Id               = setProfileSettingsResponse.Id;
                GlobalSettings.Instance.UserProfile.Type             = setProfileSettingsResponse.Type;
                GlobalSettings.Instance.UserProfile.FirstName        = setProfileSettingsResponse.FirstName;
                GlobalSettings.Instance.UserProfile.LastName         = setProfileSettingsResponse.LastName;
                GlobalSettings.Instance.UserProfile.DisplayName      = setProfileSettingsResponse.DisplayName;
                GlobalSettings.Instance.UserProfile.ShortId          = setProfileSettingsResponse.ShortId;
                GlobalSettings.Instance.UserProfile.IsEmailConfirmed = setProfileSettingsResponse.IsEmailConfirmed;
                GlobalSettings.Instance.UserProfile.DateOfBirth      = setProfileSettingsResponse.DateOfBirth;
                ///
                /// Returned avatars list is empty
                ///
                //GlobalSettings.Instance.UserProfile.Avatar = setProfileSettingsResponse.Avatar;
                //GlobalSettings.Instance.UserProfile.BackgroundImage = setProfileSettingsResponse.BackgroundImage;
                GlobalSettings.Instance.UserProfile.Availability  = setProfileSettingsResponse.Availability;
                GlobalSettings.Instance.UserProfile.LastSeen      = setProfileSettingsResponse.LastSeen;
                GlobalSettings.Instance.UserProfile.ParentId      = setProfileSettingsResponse.ParentId;
                GlobalSettings.Instance.UserProfile.ChildUserName = setProfileSettingsResponse.ChildUserName;
                GlobalSettings.Instance.UserProfile.ChildPassword = setProfileSettingsResponse.ChildPassword;
                GlobalSettings.Instance.UserProfile.Contact       = setProfileSettingsResponse.Contact;
                GlobalSettings.Instance.UserProfile.Address       = setProfileSettingsResponse.Address;
                GlobalSettings.Instance.UserProfile.BrandImage    = setProfileSettingsResponse.BrandImage;
                GlobalSettings.Instance.UserProfile.ProfileType   = (ProfileType)Enum.Parse(typeof(ProfileType), setProfileSettingsResponse.Type);

                Settings.UserProfile = JsonConvert.SerializeObject(GlobalSettings.Instance.UserProfile);

                if (restartSignalHubs)
                {
                    await RestartSocketServicesAsync();
                }

                return(true);
            }

            return(false);
        });