private void CargarDatosPrueba() { PasoReceta paso = new PasoReceta { _IdPasoReceta = 1, _Descripcion = "Para empezar vea el video y siga las instrucciones. Va a precisar una espatula, dos huevos y sal.", _UrlVideo = "https://www.youtube.com/watch?v=ZJy1ajvMU1k" }; PasoReceta paso2 = new PasoReceta { _IdPasoReceta = 2, _Descripcion = "Acto seguido espere cinco minutos a que se cocinen los huevos. Mientras tanto marine el pescado con condimento verde y sal.", _TiempoReloj = 360 }; PasoReceta paso3 = new PasoReceta { _IdPasoReceta = 3, _Descripcion = "Para terminar, espere otros 2 minutos a que se frite el pescado. Ensalse a gusto. ¡Buen provecho!", _TiempoReloj = 120 }; List <PasoReceta> pasos = new List <PasoReceta> { paso, paso2, paso3 }; Receta._Pasos = pasos; }
public PasoRecetaPage(Receta rec, PasoReceta pas, Usuario usr) { InitializeComponent(); _PasoRecetaVM = new PasoRecetaVM(rec, pas); Usuario = usr; GenerarControl(); GenerarBotonesAtrasSiguiente(); BindearDescripcion(); Navigation.RemovePage(this); BindingContext = _PasoRecetaVM; }
//Metodo que genera un control Image con la foto del paso receta y la pone en el StackLayout 'layoutControl' private void GenerarControlImagen(PasoReceta paso) { Image imagen = new Image { //Ni idea como bindear esto todavia: imagen.Source = _PasoRecetaVM._Paso.imagen; HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, Aspect = Aspect.AspectFill }; layoutControl.Children.Add(imagen); }
//Metodo que vuelve al paso anterior de la receta. Si no hay un paso anterior no hace nada (no deberia verse la flecha en este caso). public async void PasoAnterior() { int idPaso = _PasoRecetaVM._Paso._IdPasoReceta; try { //Se hace idPaso -2 porque el id de PasoReceta empieza en 1 y el indice de la lista en 0. videoPlayer.Pause(); PasoReceta pasoAnterior = _PasoRecetaVM._Receta._Pasos[idPaso - 2]; await Navigation.PushAsync(new PasoRecetaPage(_PasoRecetaVM._Receta, pasoAnterior, Usuario)); } catch { } }
//Metodo que pasa al siguiente paso de la receta. Si no hay un paso siguiente no hace nada (no deberia verse la flecha en este caso). public async void PasoSiguiente() { int idPaso = _PasoRecetaVM._Paso._IdPasoReceta; try { //Se pone la variable "idPaso" sin modificarla porque el ID de PasoReceta empieza en 1, y el indice de la lista //en 0. PasoReceta proxPaso = _PasoRecetaVM._Receta._Pasos[idPaso]; videoPlayer.Pause(); await Navigation.PushAsync(new PasoRecetaPage(_PasoRecetaVM._Receta, proxPaso, Usuario)); } catch { } }
private void GenerarControlReloj(PasoReceta paso) { timer = new Stopwatch(); AgregarLabelATimer(); AgregarEventosTapTimer(); gridTimer.Opacity = 1; /* * Image start = GenerarBotonStart(); * Image stop = GenerarBotonStop(); * Image reset = GenerarBotonReset(); * * layoutControl.Children.Add(start); * layoutControl.Children.Add(stop); * layoutControl.Children.Add(reset); */ }
public void GenerarControl() { PasoReceta paso = _PasoRecetaVM._Paso; if (paso._UrlVideo != null) { GenerarControlVideo(paso); return; } if (paso._TiempoReloj != 0) { GenerarControlReloj(paso); return; } if (paso._Foto != null) { GenerarControlImagen(paso); } }
public PasoRecetaVM(Receta rec, PasoReceta pas) { this._Receta = rec; this._Paso = pas; }
private void GenerarControlVideo(PasoReceta paso) { videoPlayer.Source = YouTubeVideoIdExtension.Convert(paso._UrlVideo); videoPlayer.Opacity = 1; videoPlayer.Play(); }