public async void OnNavigatedTo(NavigationParameters parameters) { var fooAllSuccess = true; if (Plugin.Connectivity.CrossConnectivity.Current.IsConnected == false) { fooAllSuccess = false; } else { LoadingMessage = "正在更新 請假單分類清單 中"; var fooLeaveCategoryRepository = new LeaveCategoryRepository(); APIResult = await fooLeaveCategoryRepository.GetAsync(); if (APIResult.Success == false) { using (Acr.UserDialogs.UserDialogs.Instance.Toast( $"無法進行 更新 請假單分類清單 中 ({APIResult.Message})", TimeSpan.FromMilliseconds(1500))) { await Task.Delay(2000); } fooAllSuccess = false; } else { LoadingMessage = "正在更新 專案清單 中"; var fooProjectRepository = new ProjectRepository(); APIResult = await fooProjectRepository.GetAsync(); if (APIResult.Success == false) { using (Acr.UserDialogs.UserDialogs.Instance.Toast( $"無法進行 更新 專案清單 中({APIResult.Message})", TimeSpan.FromMilliseconds(1500))) { await Task.Delay(2000); } fooAllSuccess = false; } else { LoadingMessage = "正在更新 緊急連絡電話清單 中"; var fooOnCallPhoneRepository = new OnCallPhoneRepository(); APIResult = await fooOnCallPhoneRepository.GetAsync(); if (APIResult.Success == false) { using (Acr.UserDialogs.UserDialogs.Instance.Toast( $"無法進行 更新 緊急連絡電話清單 中({APIResult.Message})", TimeSpan.FromMilliseconds(1500))) { await Task.Delay(2000); } fooAllSuccess = false; } } } } if (fooAllSuccess == true) { LoadingMessage = "系統資料更新完成"; var fooSystemStatusRepository = new SystemStatusRepository(); await fooSystemStatusRepository.ReadAsync(); if (string.IsNullOrEmpty(fooSystemStatusRepository.Item.AccessToken)) { await _navigationService.NavigateAsync("xf:///LoginPage"); } else { await _navigationService.NavigateAsync("xf:///MDPage/NaviPage/AboutPage"); } } else { var config = new Acr.UserDialogs.ConfirmConfig() { Title = "警告", Message = "可能因為網路問題,無法進行系統資料更新,您確定要繼續執行嗎? (強制繼續執行 App,但有可能造成 App 不正常運作)", OkText = "確定", CancelText = "停止" }; await Task.Delay(1000); var fooConfirmResult = await Acr.UserDialogs.UserDialogs.Instance.ConfirmAsync(config); if (fooConfirmResult == false) { LoadingMessage = "請強制關閉 App,檢查網路是否可用,並且重新啟動 App"; return; } else { LoadingMessage = "強制繼續執行 App"; } } // 切換到首頁或者登入頁面 }
public async void OnNavigatedTo(INavigationParameters parameters) { var fooAllSuccess = true; if (Plugin.Connectivity.CrossConnectivity.Current.IsConnected == false) { fooAllSuccess = false; } else { //LoadingMessage = "正在更新 員工檔/部門檔清單 中"; //var repoDepartment = new DepartmentRepository(); //APIResult = await repoDepartment.GetAsync(); //if (APIResult.Success == false) //{ // using (Acr.UserDialogs.UserDialogs.Instance.Toast($"無法進行更新[部門檔]清單 中 ({APIResult.Message})", TimeSpan.FromMilliseconds(1500))) // { // await Task.Delay(2000); // } // fooAllSuccess = false; //} //else //{ // var repoEmployee = new EmployeeRepository(); // APIResult = await repoEmployee.GetAsync(); // if (APIResult.Success == false) // { // using (Acr.UserDialogs.UserDialogs.Instance.Toast($"無法進行更新[員工檔]清單 中 ({APIResult.Message})", TimeSpan.FromMilliseconds(1500))) // { // await Task.Delay(2000); // } // fooAllSuccess = false; // } //} } if (fooAllSuccess == true) { LoadingMessage = "系統資料更新完成"; var fooSystemStatusRepository = new SystemStatusRepository(); await fooSystemStatusRepository.ReadAsync(); if (string.IsNullOrEmpty(fooSystemStatusRepository.Item.AccessToken)) { await _navigationService.NavigateAsync("xf:///LoginPage"); } else { await _navigationService.NavigateAsync("xf:///MDPage/NaviPage/AboutPage"); } } else { var config = new Acr.UserDialogs.ConfirmConfig() { Title = "警告", Message = "可能因為網路問題,無法進行系統資料更新,您確定要繼續執行嗎? (強制繼續執行 App,但有可能造成 App 不正常運作)", OkText = "確定", CancelText = "停止" }; await Task.Delay(1000); var fooConfirmResult = await Acr.UserDialogs.UserDialogs.Instance.ConfirmAsync(config); if (fooConfirmResult == false) { LoadingMessage = "請強制關閉 App,檢查網路是否可用,並且重新啟動 App"; return; } else { LoadingMessage = "強制繼續執行 App"; } } // 切換到首頁或者登入頁面 }
public async Task SalvaEnquete() { var confirmConfig = new Acr.UserDialogs.ConfirmConfig(); confirmConfig.CancelText = "Cancelar"; confirmConfig.OkText = "Finalizar"; confirmConfig.Message = "Tem certeza de que deseja criar esta enquete?"; if (await Acr.UserDialogs.UserDialogs.Instance.ConfirmAsync(confirmConfig)) { try { this.Pergunta.Respostas = new List<Resposta>(); this.Pergunta.Respostas = this.Respostas; this.Enquete.Pergunta = new Pergunta(); this.Enquete.Pergunta = this.Pergunta; this.Enquete.Tipo = EnumTipoEnquete.Interesse; this.Enquete.Titulo = this.Pergunta.TextoPergunta; this.Enquete.Status = EnumStatusEnquete.Publicada; var dbUsuario = new Repositorio<Usuario>(); var usuarioLogado = (await dbUsuario.RetornarTodos()).First(); this.Enquete.UsuarioId = usuarioLogado.Id; this.Enquete.ServerEnqueteId = -1; this.Enquete.propria = true; this.Enquete.AtivaNoFront = true; List<Resposta> gravou = new List<Resposta>(); var db = new Repositorio<Enquete>(); Acr.UserDialogs.UserDialogs.Instance.ShowLoading("Enviando..."); if (await db.Inserir(this.Enquete)) { var result = await this.service.CadastrarNovaEnquete(this.Enquete); if (result != null) { try { // Atualizando dados locais com o ID da pergunta no servidor var dbEnquete = new Repositorio<Enquete>(); this.Enquete.PerguntaServerId = result.PerguntaId; this.Enquete.Pergunta.PerguntaServerId = result.PerguntaId; this.Enquete.ServerEnqueteId = result.EnqueteId; foreach (var item in Respostas) { item.PerguntaServerId = result.PerguntaId; } //await dbEnquete.Atualizar(Enquete); // Fim da Atualização gravou = await this.service.CadastrarRespostasDaPergunta(this.Pergunta.Respostas); var dbResposta = new Repositorio<Resposta>(); if (gravou != null && gravou.Any()) { foreach (var resp in gravou) { var _r = this.Enquete.Pergunta.Respostas.First(x => x.PerguntaServerId == resp.PerguntaServerId && x.TextoResposta == resp.TextoResposta); _r.RespostaServerId = resp.RespostaServerId; _r.PerguntaServerId = resp.PerguntaServerId; await dbResposta.Atualizar(_r); await dbEnquete.Atualizar(Enquete); } } } catch (Exception ex) { Insights.Report(ex); throw ex; } } Acr.UserDialogs.UserDialogs.Instance.HideLoading(); if (gravou != null && gravou.Any()) { await this.Navigation.PushModalAsync(new MainPage()); } else await Acr.UserDialogs.UserDialogs.Instance.AlertAsync(String.Empty, AppResources.TextoMsgCadastroErroEnquete, "OK"); } else await Acr.UserDialogs.UserDialogs.Instance.AlertAsync(String.Empty, AppResources.TextoMsgCadastroErroEnquete, "OK"); } catch (Exception ex) { Insights.Report(ex); throw ex; } } }
protected async override void OnAppearing() { try { base.OnAppearing(); this.model = App.Container.Resolve<PerguntaViewModel>(); this.BindingContext = model; model.AdicionarPergunta(await model.GetPerguntaPorId(perguntaID)); this.pergunta = model.Pergunta; this.model.ConfigurarNavigation(this.Navigation); imgExcluir = new Image { Source = ImageSource.FromResource(RetornaCaminhoImagem.GetImagemCaminho("waste.png")), HorizontalOptions = LayoutOptions.EndAndExpand, HeightRequest = 40, WidthRequest = 44, IsVisible = ehInteresse }; var imgExcluir_Click = new TapGestureRecognizer(); imgExcluir_Click.Tapped += async (sender, e) => { var confirmConfig = new Acr.UserDialogs.ConfirmConfig(); confirmConfig.CancelText = "Cancelar"; confirmConfig.OkText = "OK"; confirmConfig.Message = "Tem certeza que deseja excluir esta enquete?"; var canRemove = await Acr.UserDialogs.UserDialogs.Instance.ConfirmAsync(confirmConfig); if (canRemove) { var dbEnquete = new Repositorio<Enquete>(); var enquete = await dbEnquete.RetornarPorId(enqueteId); enquete.AtivaNoFront = false; await dbEnquete.Atualizar(enquete); await this.Navigation.PushModalAsync(new MainPage(true)); } }; imgExcluir.GestureRecognizers.Add(imgExcluir_Click); var lblUsuarioCriador = new Label { Text = String.IsNullOrEmpty(UsuarioCriador) ? "Você" : UsuarioCriador, IsVisible = !String.IsNullOrEmpty(UsuarioCriador) && ehInteresse, FontFamily = Device.OnPlatform( iOS: "Helvetica", Android: "Roboto", WinPhone: "Segoe" ), FontSize = 12, FontAttributes = FontAttributes.Bold, HorizontalOptions = LayoutOptions.EndAndExpand }; var lblTitulo = new Label { FontSize = 28, FontFamily = Device.OnPlatform( iOS: "Helvetica", Android: "Roboto", WinPhone: "Segoe" ), FontAttributes = FontAttributes.Bold, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, YAlign = TextAlignment.Center, XAlign = TextAlignment.Center, LineBreakMode = LineBreakMode.WordWrap }; lblTitulo.SetBinding<PerguntaViewModel>(Label.TextProperty, x => x.Pergunta.TextoPergunta); var Imagem = new Image { VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center, Aspect = Aspect.AspectFit, }; if (!String.IsNullOrEmpty(this.imagem)) Imagem.Source = ImageSource.FromFile(DependencyService.Get<ISaveAndLoadFile>().GetImage(this.imagem)); if (!String.IsNullOrEmpty(this.urlVideo)) { if (Device.OS == TargetPlatform.iOS) { webView = new WebView(); var htmlSource = new HtmlWebViewSource(); htmlSource.Html = BuildEmbedUrl(this.urlVideo); webView.Source = htmlSource; webView.HeightRequest = 200; webView.WidthRequest = 210; webView.VerticalOptions = LayoutOptions.Center; webView.HorizontalOptions = LayoutOptions.Center; } else { str = new Uri(this.urlVideo).Segments; App.UrlVideo = this.urlVideo; imgThumbVideo = new Image { Source = ImageSource.FromFile(DependencyService.Get<ISaveAndLoadFile>().GetImage(String.Concat(str[2], ".jpg"))), HeightRequest = 200, WidthRequest = 100 }; var imgThumbVideo_Click = new TapGestureRecognizer(); imgThumbVideo_Click.Tapped += (object sender, EventArgs e) => this.Navigation.PushModalAsync(new VideoPage()); //DependencyService.Get<IYoutubePlayer> ().PlayVideo (this.urlVideo); imgThumbVideo.GestureRecognizers.Add(imgThumbVideo_Click); } } var listaRespostas = new ListaRespostasView(this.pergunta.Respostas); MessagingCenter.Subscribe<ListaRespostasView,List<Resposta>>(this, "Respondido", async (sender, respostas) => { this.model.AdicionaRespostasRespondidas(respostas, temVoucher); }); MessagingCenter.Subscribe<ListaRespostasEnqueteRespondidaViewCell,string>(this, "MostraImagem", async (sender, img) => { this.Navigation.PushModalAsync(new ExibeImagemResposta(img)); }); MessagingCenter.Subscribe<ListaRespostasViewCell,string>(this, "MostraImagem", async (sender, img) => { this.Navigation.PushModalAsync(new ExibeImagemResposta(img)); }); StackLayout perguntaLayout; if (!String.IsNullOrEmpty(this.urlVideo)) { if (Device.OS == TargetPlatform.Android) { perguntaLayout = new StackLayout { HeightRequest = Acr.DeviceInfo.DeviceInfo.Hardware.ScreenHeight * 2, HorizontalOptions = LayoutOptions.Start, Children = { lblUsuarioCriador, imgExcluir, imgThumbVideo, listaRespostas }, Padding = 20 }; } else perguntaLayout = new StackLayout { HeightRequest = Acr.DeviceInfo.DeviceInfo.Hardware.ScreenHeight * 2, HorizontalOptions = LayoutOptions.Start, Children = { lblUsuarioCriador, imgExcluir, webView, listaRespostas }, Padding = 20 }; } else if (!String.IsNullOrEmpty(this.imagem)) { perguntaLayout = new StackLayout { HeightRequest = Acr.DeviceInfo.DeviceInfo.Hardware.ScreenHeight * 2, HorizontalOptions = LayoutOptions.Start, Children = { lblUsuarioCriador, imgExcluir, Imagem, listaRespostas }, Padding = 20 }; } else { perguntaLayout = new StackLayout { HeightRequest = Acr.DeviceInfo.DeviceInfo.Hardware.ScreenHeight * 2, HorizontalOptions = LayoutOptions.Start, Children = { lblUsuarioCriador, imgExcluir, listaRespostas }, Padding = 20 }; } btnResponder.SetBinding(Button.CommandProperty, "btnGravar_Click"); this.mainLayout.Children.Add(lblTitulo); this.mainLayout.Children.Add(perguntaLayout); this.mainLayout.Children.Add(btnResponder); } catch (Exception ex) { Insights.Report(ex); } }