Exemplo n.º 1
0
        // update avatar to sql server and mongodb.
        async void UpdateAvatar(Plugin.Media.Abstractions.MediaFile file, string fileName)
        {
            if (file == null)
            {
                return;
            }
            viewModel.IsLoading = true;
            StreamContent content = new StreamContent(file.GetStream());

            content.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
            {
                Name     = "files",
                FileName = fileName
            };

            MultipartFormDataContent form = new MultipartFormDataContent();

            form.Add(content);

            var apiResponse = await BsdHttpClient.Instance().PostAsync(ApiRouter.USER_AVATAR_UPLOAD, form);

            if (apiResponse.IsSuccessStatusCode)
            {
                string      AvatarUrl = "avatar/" + fileName;
                ApiResponse response  = await ApiHelper.Post(ApiRouter.USER_AVATAR_UPDATE, AvatarUrl, true, false);

                if (response.IsSuccess)
                {
                    viewModel.User.AvatarUrl = AvatarUrl;

                    string AvatarFullUrl = viewModel.User.AvatarFullUrl;

                    image.Source = AvatarFullUrl;
                    UserLogged.SaveAvatar(AvatarFullUrl);

                    MessagingCenter.Send <ProfilePage, string>(this, "UpdateAvatar", AvatarUrl);
                    await DisplayAlert("", Language.cap_nhat_anh_dai_dien_thanh_cong, Language.dong);
                }
                else
                {
                    await DisplayAlert("", Language.khong_cap_nhat_duoc_anh_dai_dien, Language.dong);
                }
            }
            else
            {
                await DisplayAlert("", Language.khong_cap_nhat_duoc_anh_dai_dien, Language.dong);
            }
            viewModel.IsLoading = false;
        }