Example #1
0
        public async void DownloadGoogleSheetTemplate_Clicked(object sender, EventArgs a)
        {
            gridLoading.IsVisible = true;
            try
            {
                PermissionStatus storagePermission = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage);

                if (storagePermission != PermissionStatus.Granted)
                {
                    if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Storage))
                    {
                        await DisplayAlert("Quyền truy cập", "Sim Here cần quyền truy cập vào bộ nhớ để lưu template", "Đồng ý");
                    }
                    if (Device.RuntimePlatform == Device.iOS)
                    {
                        storagePermission = await PermissionHelper.CheckPermissions(Permission.Storage, "Quyền truy cập bộ nhớ", "Sim Here cần quyền truy cập vào bộ nhớ để lưu template");
                    }
                    else
                    {
                        var results = await CrossPermissions.Current.RequestPermissionsAsync(Permission.Storage);

                        storagePermission = results[Permission.Storage];
                    }
                }
                if (storagePermission == PermissionStatus.Granted)
                {
                    HttpClient          client   = BsdHttpClient.Instance();
                    HttpResponseMessage response = await client.GetAsync(Configuration.AppConfig.API_IP + "import_template.xlsx", HttpCompletionOption.ResponseHeadersRead);

                    var streamToReadFrom = await response.Content.ReadAsByteArrayAsync();

                    var    service    = DependencyService.Get <IFileService>();
                    string folderName = Device.RuntimePlatform == Device.iOS ? "" : "Download/SimHere";
                    service.SaveFile("import_template.xlsx", streamToReadFrom, folderName);
                    if (Device.RuntimePlatform == Device.iOS)
                    {
                        service.OpenFile("import_template.xlsx", folderName);
                    }
                    else
                    {
                        XFToast.ShortMessage("Tải template thành công");
                    }
                }
            }
            catch
            {
                await DisplayAlert("", "Tải thất bại", "Đóng");
            }
            gridLoading.IsVisible = false;
        }
Example #2
0
        private async void OnChooseImage_Clicked(object sender, EventArgs e)
        {
            string action = await DisplayActionSheet(Language.chon_anh_chung_chi, Language.huy, null, Language.thu_vien, Language.chup_hinh);

            if (action == Language.chup_hinh)
            {
                var cameraStatus = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Camera);

                if (cameraStatus != PermissionStatus.Granted)
                {
                    if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Camera))
                    {
                        await DisplayAlert(Language.quyen_truy_cap_may_anh, Language.sundihome_can_truy_cap_vao_may_anh_de_chup_hinh_anh_chung_chi, Language.tiep_tuc);
                    }
                    if (Device.RuntimePlatform == Device.iOS)
                    {
                        cameraStatus = await PermissionHelper.CheckPermissions(Permission.Camera, Language.quyen_truy_cap_may_anh, Language.sundihome_can_truy_cap_vao_may_anh_de_chup_hinh_anh_chung_chi);
                    }
                    else
                    {
                        var response = await CrossPermissions.Current.RequestPermissionsAsync(Permission.Camera);

                        if (response.ContainsKey(Permission.Camera))
                        {
                            cameraStatus = response[Permission.Camera];
                        }
                    }
                }
                if (cameraStatus == PermissionStatus.Granted)
                {
                    await TakePhoto();
                }
            }
            if (action == Language.thu_vien)
            {
                var photoStatus = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Photos);

                if (photoStatus != PermissionStatus.Granted)
                {
                    if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Photos))
                    {
                        await DisplayAlert(Language.quyen_truy_cap_thu_vien, Language.sundihome_can_truy_cap_vao_may_anh_de_chon_hinh_anh_chung_chi, Language.tiep_tuc);
                    }
                    if (Device.RuntimePlatform == Device.iOS)
                    {
                        photoStatus = await PermissionHelper.CheckPermissions(Permission.Photos, Language.quyen_truy_cap_thu_vien, Language.sundihome_can_truy_cap_vao_may_anh_de_chon_hinh_anh_chung_chi);
                    }
                    else
                    {
                        var response = await CrossPermissions.Current.RequestPermissionsAsync(Permission.Photos);

                        if (response.ContainsKey(Permission.Photos))
                        {
                            photoStatus = response[Permission.Photos];
                        }
                    }
                }
                if (photoStatus == PermissionStatus.Granted)
                {
                    await PickPhoto();
                }
            }
        }
Example #3
0
        private async void SelectImage_Clicked(object sender, EventArgs e)
        {
            var actionSheet = await DisplayActionSheet("Tuỳ chọn", "Đóng", null, "Chụp ảnh", "Chọn ảnh");


            Plugin.Media.Abstractions.MediaFile file = null;

            if (actionSheet == "Chụp ảnh")
            {
                await CrossMedia.Current.Initialize();

                if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
                {
                    await DisplayAlert("Máy ảnh", "Máy ảnh không khả dụng", "Đóng");

                    gridLoading.IsVisible = false;
                    return;
                }


                PermissionStatus cameraStatus = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Camera);

                if (cameraStatus != PermissionStatus.Granted)
                {
                    if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Camera))
                    {
                        await DisplayAlert("Quyền truy cập máy ảnh", "Sim ,ere cần truy cập vào máy ảnh để chụp hình cho ảnh đại diện", "Đồng ý");
                    }
                    if (Device.RuntimePlatform == Device.iOS)
                    {
                        cameraStatus = await PermissionHelper.CheckPermissions(Permission.Camera, "Quyền truy cập máy ảnh", "Sim Here cần truy cập vào máy ảnh để chụp hình cho ảnh đại diện");
                    }
                    else
                    {
                        var results = await CrossPermissions.Current.RequestPermissionsAsync(Permission.Camera);

                        cameraStatus = results[Permission.Camera];
                    }
                }
                if (cameraStatus == PermissionStatus.Granted)
                {
                    gridLoading.IsVisible = true;
                    file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
                    {
                        SaveToAlbum    = false,
                        PhotoSize      = Plugin.Media.Abstractions.PhotoSize.MaxWidthHeight,
                        MaxWidthHeight = 300,
                    });
                }
            }
            else if (actionSheet == "Chọn ảnh")
            {
                await CrossMedia.Current.Initialize();

                Permission pickPhotoStatus = Permission.Storage;
                if (Device.RuntimePlatform == Device.iOS)
                {
                    pickPhotoStatus = Permission.Photos;
                }


                PermissionStatus photoPermisstionStatue = await CrossPermissions.Current.CheckPermissionStatusAsync(pickPhotoStatus);

                if (photoPermisstionStatue != PermissionStatus.Granted)
                {
                    if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(pickPhotoStatus))
                    {
                        await DisplayAlert("Quyền truy cập hình ảnh", "Sim Here cần truy cập vào thư viện hình ảnh để đặt anh đại ", "Đồng ý");
                    }
                    if (Device.RuntimePlatform == Device.iOS)
                    {
                        photoPermisstionStatue = await PermissionHelper.CheckPermissions(pickPhotoStatus, "Quyền truy cập hình ảnh", "Sim Here muốn truy cập vào thư viện hình ảnh của bạn để lấy hình ảnh đặt làm ảnh đại diện cho bạn.");
                    }
                    else
                    {
                        var results = await CrossPermissions.Current.RequestPermissionsAsync(pickPhotoStatus);

                        photoPermisstionStatue = results[pickPhotoStatus];
                    }
                }
                if (photoPermisstionStatue == PermissionStatus.Granted)
                {
                    gridLoading.IsVisible = true;
                    file = await CrossMedia.Current.PickPhotoAsync(new Plugin.Media.Abstractions.PickMediaOptions()
                    {
                        MaxWidthHeight = 300,
                        PhotoSize      = Plugin.Media.Abstractions.PhotoSize.MaxWidthHeight
                    });
                }
            }
            else
            {
                gridLoading.IsVisible = false;
            }

            if (file == null)
            {
                gridLoading.IsVisible = false;
                return;
            }

            var client = BsdHttpClient.Instance();

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", UserLogged.AccessToken);
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            MultipartFormDataContent form = new MultipartFormDataContent();


            var stream  = file.GetStream();
            var content = new StreamContent(stream);

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

            form.Add(content);



            try
            {
                HttpResponseMessage response = await(client.PostAsync("api/user/changeavatar", form));
                string body = await response.Content.ReadAsStringAsync();

                ApiResponse apiResponse = JsonConvert.DeserializeObject <ApiResponse>(body);
                if (apiResponse.IsSuccess)
                {
                    string newFileName = apiResponse.Content.ToString();

                    ImageSource newImageSource = ImageSource.FromStream(() => file.GetStream());
                    SetAvatar(newImageSource);

                    TrackProfileChange.AvatarHasChanged = true;
                    UserLogged.AvatarUrl = AppConfig.API_IP + "Upload/Avatar/" + newFileName;
                    XFToast.ShortMessage("Cập nhật thành cộng");
                    gridLoading.IsVisible = false;
                }
                else
                {
                    await DisplayAlert("", "Không thể cập nhật ảnh đại diện", "Đóng");

                    gridLoading.IsVisible = false;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                gridLoading.IsVisible = false;
            }
        }
Example #4
0
        private async void PickImage_Clicked(object sender, EventArgs e)
        {
            string action = await Shell.Current.DisplayActionSheet(Language.chon_hinh_dai_dien, Language.huy, null, Language.thu_vien_anh, Language.chup_hinh);

            if (action == Language.chup_hinh)
            {
                var cameraStatus = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Camera);

                if (cameraStatus != PermissionStatus.Granted)
                {
                    if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Camera))
                    {
                        await Shell.Current.DisplayAlert(Language.quyen_truy_cap_may_anh, Language.sundihome_can_truy_cap_vao_may_anh_de_chup_hinh_goi_vay, Language.dong);
                    }
                    if (Device.RuntimePlatform == Device.iOS)
                    {
                        cameraStatus = await PermissionHelper.CheckPermissions(Permission.Camera, Language.quyen_truy_cap_may_anh, Language.sundihome_can_truy_cap_vao_may_anh_de_chup_hinh_goi_vay);
                    }
                    else
                    {
                        var response = await CrossPermissions.Current.RequestPermissionsAsync(Permission.Camera);

                        if (response.ContainsKey(Permission.Camera))
                        {
                            cameraStatus = response[Permission.Camera];
                        }
                    }
                }
                if (cameraStatus == PermissionStatus.Granted)
                {
                    await CrossMedia.Current.Initialize();

                    if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
                    {
                        await Shell.Current.DisplayAlert("", Language.may_anh_khong_kha_dung, Language.dong);

                        return;
                    }

                    imageFile = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions
                    {
                        SaveToAlbum = false
                    });

                    if (imageFile != null)
                    {
                        ImageGoiVay.Source       = imageFile.Path;
                        BtnRemoveImage.IsVisible = true;
                        grImageGoiVay.IsVisible  = true;
                    }
                }
            }
            if (action == Language.thu_vien_anh)
            {
                var photoStatus = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Photos);

                if (photoStatus != PermissionStatus.Granted)
                {
                    if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Photos))
                    {
                        await Shell.Current.DisplayAlert(Language.quyen_truy_cap_thu_vien, Language.sundihome_can_truy_cap_vao_thu_vien_de_lay_hinh_anh_goi_vay, Language.dong);
                    }
                    if (Device.RuntimePlatform == Device.iOS)
                    {
                        photoStatus = await PermissionHelper.CheckPermissions(Permission.Photos, Language.quyen_truy_cap_thu_vien, Language.sundihome_can_truy_cap_vao_thu_vien_de_lay_hinh_anh_goi_vay);
                    }
                    else
                    {
                        var response = await CrossPermissions.Current.RequestPermissionsAsync(Permission.Photos);

                        if (response.ContainsKey(Permission.Photos))
                        {
                            photoStatus = response[Permission.Photos];
                        }
                    }
                }
                if (photoStatus == PermissionStatus.Granted)
                {
                    if (!CrossMedia.Current.IsPickPhotoSupported)
                    {
                        await Shell.Current.DisplayAlert(Language.quyen_truy_cap_bi_tu_choi, Language.khong_the_truy_cap_vao_thu_vien_anh, Language.dong);

                        return;
                    }

                    imageFile = await CrossMedia.Current.PickPhotoAsync();

                    if (imageFile != null)
                    {
                        ImageGoiVay.Source       = imageFile.Path;
                        BtnRemoveImage.IsVisible = true;
                        grImageGoiVay.IsVisible  = true;
                    }
                }
            }
        }