Exemplo n.º 1
0
        public QuestoesViewModel(int idAspecto)
        {
            GerenciadorFotos = DependencyService.Get <IGerenciadorFotos>();
            MyList           = new ObservableCollection <QuestionarioModelClass>();
            _idAspecto       = idAspecto;
            FillData(idAspecto);
            DesabilitarQuestoesAnulaveis(idQuestao, idResposta);
            RadionButtonCommandRespostaQuestao = new Command(async(model) =>
            {
                QuestionarioModelClass questaoSelecionada = (QuestionarioModelClass)model;
                var idQuestao       = Convert.ToInt32(questaoSelecionada.id);
                var respostaQuestao = Convert.ToInt32(questaoSelecionada.resposta);
                DesabilitarQuestoesAnulaveis(idQuestao, respostaQuestao);
            });
            ButtonClickCommandEnviarQuestionario = new Command(async(model) =>
            {
                Device.BeginInvokeOnMainThread(async() =>
                {
                    IList <QuestionarioModelClass> relacaoQuestoes = (IList <QuestionarioModelClass>)model;
                    using (UserDialogs.Instance.Loading("Sincronizando Questionário.", null, null, true, MaskType.Black))
                    {
                        await EnviarQuestionario(relacaoQuestoes, idAspecto);
                        Device.BeginInvokeOnMainThread(() =>
                        {
                            UserDialogs.Instance.HideLoading();
                        });
                    }
                });
            });
            ButtonClickCommandFoto = new Command(async(model) =>
            {
                try
                {
                    MediaFile file;
                    IMedia media = CrossMedia.Current;
                    QuestionarioModelClass questoes = (QuestionarioModelClass)model;
                    MidiaQuestoes midiaQuestoes;
                    DatabaseHelper service = new DatabaseHelper();
                    var qtdMidia           = service.GetqtdMidia();
                    var qtdQuestoes        = service.QuantidadeMidiaQuestoes(questoes.id);
                    if (qtdQuestoes < qtdMidia.data)
                    {
                        await CrossMedia.Current.Initialize();
                        bool answer = await Application.Current.MainPage.DisplayAlert("", "Deseja Obter imagem através ", "Galeria", "Câmera");
                        if (answer)
                        {
                            //Procedimento para capturar foto da galeria
                            try
                            {
                                /*MediaFile _mediaFile;
                                 * if (!CrossMedia.Current.IsPickPhotoSupported)
                                 * {
                                 *  System.Diagnostics.Debug.WriteLine("Erro.");
                                 *  return;
                                 * }
                                 * file = await media.PickPhotoAsync();
                                 * if (file == null)
                                 * {
                                 *  await Application.Current.MainPage.DisplayAlert("", "Mídia não selecionada.", "OK");
                                 *  return;
                                 * }
                                 * else
                                 * {
                                 *  string caminho = file.Path;
                                 *  string filename = null;
                                 *  filename = Path.GetFileName(caminho);
                                 *  file.Dispose();
                                 *  midiaQuestoes = new MidiaQuestoes();
                                 *  midiaQuestoes.questaoVisitaId = questoes.id;
                                 *  midiaQuestoes.dataGravacao = DateTime.Now;
                                 *  midiaQuestoes.legenda = filename;
                                 *  midiaQuestoes.caminho = caminho;
                                 *  service.InsertMidiaQuestoes(midiaQuestoes);
                                 *
                                 * }*/
                                await GerenciadorFotos.MidiaAsync();
                                //ImageSource imagem = ImageSource.FromStream(() => imageStream);
                            }
                            catch (Exception ex)
                            {
                                await Application.Current.MainPage.DisplayAlert("", ex.Message, "OK");
                            }
                            //Fim Procedimento para capturar foto da galeria
                        }
                        else
                        {
                            //Procedimento para Tirar Foto para questão.
                            string _datahora;
                            var _data   = DateTime.Now;
                            var day     = _data.Day.ToString();
                            var month   = _data.Month.ToString();
                            var year    = _data.Year.ToString();
                            var hora    = _data.Hour.ToString();
                            var minuto  = _data.Minute.ToString();
                            var segundo = _data.Second.ToString();
                            _datahora   = day + "_" + month + "_" + year + "_" + hora + "_" + minuto + "_" + segundo;
                            if (!CrossMedia.Current.IsTakePhotoSupported || !CrossMedia.Current.IsCameraAvailable)
                            {
                                await Application.Current.MainPage.DisplayAlert("Ops", "Nenhuma câmera detectada.", "OK");

                                return;
                            }
                            try
                            {
                                file = await CrossMedia.Current.TakePhotoAsync(
                                    new StoreCameraMediaOptions
                                {
                                    PhotoSize          = PhotoSize.Small,
                                    CompressionQuality = 92,
                                    SaveToAlbum        = true,
                                    Name      = questoes.id.ToString() + "_" + _datahora,
                                    Directory = "Milenio"
                                });
                                string caminho = file.AlbumPath;

                                if (file == null)
                                {
                                    return;
                                }
                                else
                                {
                                    midiaQuestoes = new MidiaQuestoes();
                                    midiaQuestoes.questaoVisitaId = questoes.id;
                                    midiaQuestoes.dataGravacao    = DateTime.Now;
                                    midiaQuestoes.legenda         = questoes.id.ToString() + "_" + _datahora + ".jpg";
                                    midiaQuestoes.caminho         = caminho;
                                    service.InsertMidiaQuestoes(midiaQuestoes);
                                }
                            }
                            catch (Exception ex)
                            {
                                throw;
                            }

                            // Fim Procedimento para tirar Foto para questão
                        }
                    }
                    else
                    {
                        string msg = "Limite atingido de " + qtdMidia.data + " mídias por pergunta. ";
                        await Application.Current.MainPage.DisplayAlert("", msg, "OK");
                    }
                }
                catch (Exception ex)
                {
                    await Application.Current.MainPage.DisplayAlert("", "Mídia não selecionada.", "OK");
                }
            });
        }
 public MainPage()
 {
     InitializeComponent();
     GerenciadorFotos = DependencyService.Get <IGerenciadorFotos>();
 }