public override void ViewDidLoad() { base.ViewDidLoad(); try{ UIBarButtonItem home = new UIBarButtonItem(); home.Style = UIBarButtonItemStyle.Plain; home.Target = this; home.Image = UIImage.FromFile("Images/home.png"); this.NavigationItem.RightBarButtonItem = home; UIViewController[] vistas = NavigationController.ViewControllers; home.Clicked += (sender, e) => { this.NavigationController.PopToViewController(vistas[0], true); }; //Configuramos la vista popup de nueva lista NewListView.Layer.BorderWidth = 1.0f; NewListView.Layer.BorderColor = UIColor.Black.CGColor; NewListView.Layer.CornerRadius = 8; tblLists.Add(this.NewListView); NewListView.Hidden = true; //Configuramos la vista popup de cantidad QuantityView.Layer.BorderWidth = 1.0f; QuantityView.Layer.BorderColor = UIColor.Black.CGColor; QuantityView.Layer.CornerRadius = 8; this.Add(QuantityView); QuantityView.Hidden = true; //Configuramos la vista de popup de listas ListsView.Layer.BorderWidth = 1.0f; ListsView.Layer.BorderColor = UIColor.Black.CGColor; ListsView.Layer.CornerRadius = 8; this.Add(this.ListsView); ListsView.Hidden = true; if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone) { this.btnMapa.SetBackgroundImage(Images.mapa, UIControlState.Normal); } else { this.btnMapa.SetBackgroundImage(Images.mapa, UIControlState.Normal); } this.btnMapa.TouchUpInside += (sender, e) => { SecondMapViewController mapView = new SecondMapViewController(); mapView.setTienda(this.producto); NavigationController.PushViewController(mapView, true); }; var documents = Environment.GetFolderPath(Environment.SpecialFolder.Personal); _pathToDatabase = Path.Combine(documents, "db_sqlite-net.db"); //Hacemos la conexion a la bd para buscar si hay un usuario registrado using (var db = new SQLite.SQLiteConnection(_pathToDatabase)) { people = new List <Person> (from p in db.Table <Person> () select p); } NSUrl nsUrl = new NSUrl(producto.imagen); data = NSData.FromUrl(nsUrl); if (data != null) { Images.imagenDetalle = UIImage.LoadFromData(data); this.imgProducto.Image = Images.imagenDetalle; } else { this.imgProducto.Image = Images.sinImagen; } //Establecemos la informacion del producto this.lblNombre.Text = producto.nombre; double precio = Double.Parse(producto.precio); this.lblPrecio.Text = precio.ToString("C2"); this.lblDescripcion.Text = producto.descripcion; if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone) { this.lblDescripcion.Font = UIFont.SystemFontOfSize(10); } else { this.lblDescripcion.Font = UIFont.SystemFontOfSize(25); } //Establecemos la informacion de la tienda NSUrl nsurl = new NSUrl(producto.tienda_imagen); NSData data1 = NSData.FromUrl(nsurl); if (data1 != null) { Images.imagenDetalleTienda = UIImage.LoadFromData(data1); this.imgTienda.Image = Images.imagenDetalleTienda; } else { this.imgTienda.Image = Images.sinImagen; } this.lblTiendaNombre.Text = producto.tienda_nombre; this.lblTiendaDireccion.Text = producto.tienda_direccion + "\n \nTeléfono: " + producto.tienda_telefono; if (distancia != 0) { this.lblTiendaDistancia.Text = "A " + Math.Round(distancia, 2) + "km de tu ubicación"; } else { this.lblTiendaDistancia.Text = "Distancia no disponible"; } this.lblVigencia.Text = "Vigencia del " + producto.inicio_validez + " Al " + producto.final_validez; this.btnLista.TouchUpInside += (sender, e) => { if (people.Count > 0) { UIAlertView alert = new UIAlertView() { Title = "Añadir a mi lista", Message = "¿Deseas añadir este producto a una de tus listas?" }; alert.AddButton("Añadir"); alert.AddButton("Cancelar"); alert.Show(); alert.Clicked += (s, o) => { if (o.ButtonIndex == 0) { QuantityView.Hidden = false; } }; } else { UIAlertView alert = new UIAlertView() { Title = "Espera!", Message = "Debes iniciar sesión para acceder a tus listas" }; alert.AddButton("Aceptar"); alert.Show(); } }; int cantidad = 1; this.cmpCantidad.Text = cantidad.ToString(); btnMas.TouchUpInside += (sender, e) => { cantidad++; this.cmpCantidad.Text = cantidad.ToString(); }; btnMenos.TouchUpInside += (sender, e) => { cantidad--; if (cantidad < 1) { UIAlertView alert = new UIAlertView() { Title = "Espera!", Message = "La cantidad minima es 1" }; alert.AddButton("Aceptar"); alert.Show(); cantidad = 1; this.cmpCantidad.Text = cantidad.ToString(); } else { this.cmpCantidad.Text = cantidad.ToString(); } }; this.btnAceptarCantidad.TouchUpInside += (sender, e) => { try{ if (cmpCantidad.Text.Equals("")) { UIAlertView alert = new UIAlertView() { Title = "Espera!", Message = "Debes ingresar la cantidad" }; alert.AddButton("Registrar"); alert.AddButton("Cancelar"); alert.Show(); } else { cmpCantidad.ResignFirstResponder(); QuantityView.Hidden = true; ls = new ListsService(); Person persona = people.ElementAt(0); ls.setUserId(persona.ID.ToString()); List <ListsService> tableItems = ls.All(); if (tableItems.Count > 0) { this.tblLists.Source = new AddToListsTableSource(tableItems, this, this.producto, int.Parse(cmpCantidad.Text)); ListsView.Add(this.tblLists); this.tblLists.ReloadData(); ListsView.Hidden = false; cmpCantidad.Text = ""; } else { UIAlertView alert = new UIAlertView() { Title = "No tienes listas", Message = "No tienes listas registradas, porfavor ve a \"Mis listas\" para crear una nueva" }; alert.AddButton("Registrar"); alert.AddButton("Cancelar"); alert.Show(); } } }catch (System.FormatException ex) { Console.WriteLine(ex.ToString()); UIAlertView alert = new UIAlertView() { Title = "Espera!", Message = "Debes ingresar solo números" }; alert.AddButton("Aceptar"); alert.Show(); QuantityView.Hidden = false; }catch (System.Net.WebException) { UIAlertView alert = new UIAlertView() { Title = "Ups :S", Message = "Algo salio mal,no se pudieron cargar tus listas, verifica tu conexión a internet e inténtalo de nuevo" }; alert.AddButton("Aceptar"); alert.Show(); }catch (System.Exception ext) { Console.WriteLine(ext.ToString()); UIAlertView alert = new UIAlertView() { Title = "Ups :S", Message = "Ocurrió un problema, inténtalo de nuevo" }; alert.AddButton("Aceptar"); alert.Show(); } }; btnCerrarLista.TouchUpInside += (sender, e) => { ListsView.Hidden = true; }; btnBadPrice.TouchUpInside += (sender, e) => { if (MainView.userId != 0) { UIAlertView alert = new UIAlertView() { Title = "Gracias por su reporte", Message = "Estamos revisando constantemente los precios de los productos y le agradecemos su aportación, ¿le gustaría reportar el precio de este producto para su revision?" }; alert.AddButton("SI"); alert.AddButton("NO"); alert.Clicked += (s, o) => { try{ if (o.ButtonIndex == 0) { ReportService report = new ReportService(); String respuesta = report.SetData(MainView.userId.ToString(), this.producto.id, this.producto.tienda_id, this.producto.precio); if (respuesta.Equals("\"correct\"")) { UIAlertView alert2 = new UIAlertView() { Title = "Muchas gracias!", Message = "En FixBuy estamos comprometidos con ofrecer siempre la informacion correcta, muchas gracias por tu reporte =)" }; alert2.AddButton("Aceptar"); alert2.Show(); } else { UIAlertView alert3 = new UIAlertView() { Title = "UPS :S", Message = "Algo salio mal, verifica tu conexión a internet e intentalo de nuevo" }; alert3.AddButton("Aceptar"); alert3.Show(); } } }catch (System.Net.WebException) { UIAlertView alerta = new UIAlertView() { Title = "UPS :S", Message = "Algo salio mal, verifica tu conexión a internet e intentalo de nuevo" }; alerta.AddButton("Aceptar"); alerta.Show(); }catch (Exception) { UIAlertView alerta = new UIAlertView() { Title = "UPS :S", Message = "Algo salio mal, por favor intentalo de nuevo" }; alerta.AddButton("Aceptar"); alerta.Show(); } }; alert.Show(); } else { UIAlertView alert = new UIAlertView() { Title = "Espera!", Message = "Debes iniciar sesión para poder reportar el precio incorrecto" }; alert.AddButton("Aceptar"); alert.Show(); } }; btnFacebook.TouchUpInside += (sender, e) => { try{ if (MainView.isWithFacebook == true) { UIAlertView alert = new UIAlertView() { Title = "Quieres publicar este producto?", Message = "Deseas publicar este producto en tu perfil de Facebook?" }; alert.AddButton("Aceptar"); alert.AddButton("Cancelar"); alert.Clicked += (s, o) => { if (o.ButtonIndex == 0) { var post = new NSMutableDictionary(); if (data != null) { post.Add(new NSString("message"), new NSString(producto.imagen + "\t" + producto.nombre + "\t(" + producto.descripcion + ")" + "\nGracias a FixBuy encontre mi producto =D")); } else { post.Add(new NSString("message"), new NSString(producto.nombre + "\t(" + producto.descripcion + ")" + "\nGracias a FixBuy encontre mi producto =D ")); } // Ask for publish_actions permissions in context if (!FBSession.ActiveSession.Permissions.Contains("publish_actions")) { // No permissions found in session, ask for it FBSession.ActiveSession.RequestNewPublishPermissions(new [] { "publish_actions" }, FBSessionDefaultAudience.Friends, (session, error) => { if (error != null) { InvokeOnMainThread(() => new UIAlertView("Ups =S", "Ocurrio un error intentalo de nuevo", null, "Aceptar", null).Show()); } else { // If permissions granted, publish the story FBRequestConnection.StartWithGraphPath("me/feed", post, "POST", (connection, result, err) => { if (err != null) { InvokeOnMainThread(() => new UIAlertView("Ups =S", "Ocurrio un error intentalo de nuevo", null, "Aceptar", null).Show()); } else { HelloId = (result as FBGraphObject)["id"] as NSString; InvokeOnMainThread(() => new UIAlertView("Producto publicado =)", "El producto que FixBuy te ayudo a encontrar a sido publicado en tu biografia =)", null, "Aceptar", null).Show()); } }); } }); } else { // If permissions is found, publish the story FBRequestConnection.StartWithGraphPath("me/feed", post, "POST", (connection, result, err) => { if (err != null) { InvokeOnMainThread(() => new UIAlertView("Ups =S", "Ocurrio un error intentalo de nuevo", null, "Ok", null).Show()); } else { HelloId = (result as FBGraphObject)["id"] as NSString; InvokeOnMainThread(() => new UIAlertView("Producto publicado =)", "El producto que FixBuy te ayudo a encontrar a sido publicado en tu biografia =)", null, "Aceptar", null).Show()); } }); } } }; alert.Show(); } else { InvokeOnMainThread(() => new UIAlertView("No has entrado a Facebook", "Debes iniciar sesion en Facebook para poder publicar tu producto, por favor regresa a la pantalla inicial para iniciar sesion en Facebook", null, "Aceptar", null).Show()); } }catch (Exception exc) { Console.WriteLine("UPS: " + exc.ToString()); } //Console.WriteLine(HelloId.ToString()); }; btnNuevaLista.TouchUpInside += (sender, e) => { this.NewListView.Hidden = false; }; btnAceptarNuevaLista.TouchUpInside += (sender, e) => { try{ if (cmpNewList.Text == "") { UIAlertView alert = new UIAlertView() { Title = "Espera!", Message = "Debes ingresar el nombre de la lista" }; alert.AddButton("Aceptar"); alert.Show(); } else { nls = new NewListService(); String respuesta = nls.SetListData(cmpNewList.Text, MainView.userId.ToString()); if (respuesta.Equals("\"lista ya existe\"")) { UIAlertView alert = new UIAlertView() { Title = "Ups :S", Message = "Ese nombre de lista ya se encuentra registrado" }; alert.AddButton("Aceptar"); alert.Show(); //cmpNewList.Hidden = true; cmpNewList.Text = ""; cmpNewList.ResignFirstResponder(); } else { UIAlertView alert = new UIAlertView() { Title = "Lista creada", Message = "Tu nueva lista \"" + cmpNewList.Text + "\" ha sido creada =D" }; alert.AddButton("Aceptar"); alert.Show(); ls = new ListsService(); ls.setUserId(MainView.userId.ToString()); List <ListsService> items = ls.All(); this.tblLists.Source = new AddToListsTableSource(items, this, producto, 1); this.tblLists.ReloadData(); cmpNewList.Text = ""; NewListView.Hidden = true; cmpNewList.ResignFirstResponder(); } } }catch (System.Net.WebException) { UIAlertView alert = new UIAlertView() { Title = "Ups =S", Message = "Algo salio mal, verifica tu conexión a internet e intentalo de nuevo" }; alert.AddButton("Aceptar"); alert.Show(); }catch (Exception exc) { Console.WriteLine(exc.ToString()); UIAlertView alert = new UIAlertView() { Title = "Ups =S", Message = "Algo salio mal, por favor intentalo de nuevo" }; alert.AddButton("Aceptar"); alert.Show(); } }; btnCerrarNombreNL.TouchUpInside += (sender, e) => { this.NewListView.Hidden = true; this.cmpNewList.ResignFirstResponder(); }; }catch (Exception e) { Console.WriteLine(e.ToString()); UIAlertView alert = new UIAlertView() { Title = "Ups =S", Message = "Algo salio mal, por favor intentalo de nuevo." }; alert.AddButton("Aceptar"); alert.Show(); } try{ //Registramos la visita al producto en la aplicacion web RegisterVisit(producto.tienda_id, MainView.userId); } catch (Exception) { /*Atrapamos la excepcion en caso de que el registro de la visita no pueda hacerse * sin mostrar ningun mensaje ni detener el flujo de la aplicacion*/ } try{ //Leemos el servicio de los banners this.bannersService = new BannersService(); banners = bannersService.All(); } catch (System.Net.WebException) { UIAlertView alert = new UIAlertView() { Title = "UPS :S", Message = "Hubo un error al conectarse a internet la seccion de banners no puede mostrarse, por favor verifica tu conexión a internet" }; alert.AddButton("Aceptar"); alert.Show(); } button = new UIButton(new CGRect(0, 0, bannerImage.Bounds.Width, bannerImage.Bounds.Height)); bannerImage.Add(button); button.TouchUpInside += (sender, e) => { try{ if (bannerError == false) { if (element.imagen != "") { NSUrl url = new NSUrl(element.link); UIApplication.SharedApplication.OpenUrl(url); } } }catch (Exception) { //solo atrapamos la excepcion, no hacemos nada } }; }
public override void ViewDidLoad () { base.ViewDidLoad (); this.Title = "Menú"; //Ocultamos el boton de tiendas registradas temporalmente //btnTiendas.Hidden = true; //btnInfo2.Hidden = true; var documents = Environment.GetFolderPath(Environment.SpecialFolder.Personal); _pathToDatabase = Path.Combine(documents, "db_sqlite-net.db"); //Creamos la base de datos y la tabla de persona, en caso de que ya exista no hace nada. using (var conn= new SQLite.SQLiteConnection(_pathToDatabase)) { conn.CreateTable<Person>(); } //Hacemos la conexion a la bd para buscar si hay un usuario registrado using (var db = new SQLite.SQLiteConnection(_pathToDatabase )) { people = new List<Person> (from p in db.Table<Person> () select p); } //Establecemos las imagenes de los botones setButtonImages(); //Eventos para los botones de informacion this.btnInfo1.TouchUpInside += (sender, e) => { ToastView view = new ToastView("Busca productos por código de barras o nombre", 3000); view.SetGravity(ToastGravity.Center,0,0); view.Show(); }; this.btnInfo2.TouchUpInside += (sender, e) => { ToastView view = new ToastView("Localiza todas las tiendas registradas en FIXBUY", 3000); view.SetGravity(ToastGravity.Center,0,0); view.Show(); }; this.btnInfo3.TouchUpInside += (sender, e) => { ToastView view = new ToastView("Administra tus listas y los productos en ellas", 3000); view.SetGravity(ToastGravity.Center,0,0); view.Show(); }; this.btnInfo4.TouchUpInside += (sender, e) => { ToastView view = new ToastView("Inicia Sesion en FIXBUY para poder acceder a tus listas y más!", 3000); view.SetGravity(ToastGravity.Center,0,0); view.Show(); }; this.btnInfo5.TouchUpInside += (sender, e) => { ToastView view = new ToastView("Establece tu ubicación para una busqueda mas eficaz!", 3000); view.SetGravity(ToastGravity.Center,0,0); view.Show(); }; this.btnInfo6.TouchUpInside += (sender, e) => { ToastView view = new ToastView("Consulta los servicios que ofrece FIXBUY", 3000); view.SetGravity(ToastGravity.Center,0,0); view.Show(); }; this.btnCerrarSesion.TouchUpInside += (sender, e) => { UIAlertView alert = new UIAlertView () { Title = "Te vas? =(", Message = "Estas seguro que quieres cerrar la sesión?" }; alert.AddButton("Aceptar"); alert.AddButton("Cancelar"); alert.Clicked += (s, o) => { if(o.ButtonIndex == 0){ using (var conn= new SQLite.SQLiteConnection(_pathToDatabase)) { conn.DropTable<Person>(); conn.CreateTable<Person>(); } this.NavigationController.PopViewController(true); } }; alert.Show (); }; //Boton de buscar productos this.btnScan.TouchUpInside += (sender, e) => { // Configurar el escaner de codigo de barras. picker = new ScanditSDKRotatingBarcodePicker (MainView.appKey); picker.OverlayController.Delegate = new overlayControllerDelegate(picker, this); picker.OverlayController.ShowToolBar(true); picker.OverlayController.ShowSearchBar(true); picker.OverlayController.SetToolBarButtonCaption("Cancelar"); picker.OverlayController.SetSearchBarKeyboardType(UIKeyboardType.Default); picker.OverlayController.SetSearchBarPlaceholderText("Búsqueda por nombre de producto"); picker.OverlayController.SetCameraSwitchVisibility(SICameraSwitchVisibility.OnTablet); picker.OverlayController.SetTextForInitializingCamera("Iniciando la camara"); this.PresentViewController (picker, true, null); picker.StartScanning (); }; //Boton de tiendas Registradas this.btnTiendas.TouchUpInside += (sender, e) => { this._loadPop = new LoadingOverlay (UIScreen.MainScreen.Bounds); this.Add ( this._loadPop ); mvp = new MapViewController(); Task.Factory.StartNew ( () => { System.Threading.Thread.Sleep ( 1 * 1000 ); } ).ContinueWith ( t => { this._loadPop.Hide (); this.NavigationController.PushViewController(mvp, true); }, TaskScheduler.FromCurrentSynchronizationContext() ); }; //Boton Mis listas this.btnListas.TouchUpInside += (sender, e) => { if (people.Count == 1) { MyListsView myLists = new MyListsView (); this.NavigationController.PushViewController (myLists, true); } else { UIAlertView alert = new UIAlertView () { Title = "Espera!", Message = "Debes iniciar sesión para acceder a tus listas" }; alert.AddButton("Aceptar"); alert.Show (); } }; //Boton Iniciar Sesion this.btnSesion.TouchUpInside += (sender, e) => { if (people.Count == 1) { UIAlertView alert = new UIAlertView () { Title = "Espera!", Message = "Ya has iniciado sesión" }; alert.AddButton("Aceptar"); alert.Show (); } else { LoginView login = new LoginView (); this.NavigationController.PushViewController (login, true); } }; //Boton Novedades this.btnNovedades.TouchUpInside += (sender, e) => { StatesView statesView = new StatesView(); this.NavigationController.PushViewController(statesView, true); }; //Boton Nuestros Servicios this.btnServicios.TouchUpInside += (sender, e) => { AboutUsView aboutUS = new AboutUsView (); this.NavigationController.PushViewController (aboutUS, true); }; // creacion de la barra de herramientas float toolbarHeight = 44; toolbar = new UIToolbar (new CGRect (0 , this.View.Frame.Height - this.NavigationController.NavigationBar.Frame.Height , this.View.Frame.Width, toolbarHeight)); toolbar.AutoresizingMask = UIViewAutoresizing.FlexibleTopMargin | UIViewAutoresizing.FlexibleWidth; toolbar.TintColor = UIColor.FromRGB(7, 129, 181); // boton acerca de UIBarButtonItem btnacercaDe = new UIBarButtonItem (UIBarButtonSystemItem.Bookmarks); btnacercaDe.Clicked += (s, e) => { UIAlertView alert = new UIAlertView () { Title = "Que deseas consultar? " }; alert.AddButton("Terminos y Condiciones"); alert.AddButton("Aviso de Privacidad"); alert.Clicked+= (sen, o) =>{ if(o.ButtonIndex == 0) { TermsView termsView = new TermsView(); NavigationController.PushViewController(termsView, true); }else{ PrivacyNoticeView privacyNoticeView = new PrivacyNoticeView(); NavigationController.PushViewController(privacyNoticeView, true); } }; alert.Show (); }; // fixed width //UIBarButtonItem fixedWidth = new UIBarButtonItem (UIBarButtonSystemItem.FixedSpace); //fixedWidth.Width = 35; // flexible width space UIBarButtonItem flexibleWidth1 = new UIBarButtonItem (UIBarButtonSystemItem.FlexibleSpace); // boton fixBuy UIBarButtonItem btnFixBuy = new UIBarButtonItem (UIBarButtonSystemItem.Search); btnFixBuy.Clicked += (s, e) => { NSUrl url = new NSUrl (@"http://fixbuy.mx"); UIApplication.SharedApplication.OpenUrl (url); }; // flexible width space UIBarButtonItem flexibleWidth2 = new UIBarButtonItem (UIBarButtonSystemItem.FlexibleSpace); // boton email UIBarButtonItem btnEmail = new UIBarButtonItem (UIBarButtonSystemItem.Compose); btnEmail.Clicked += (s, e) => { //Añadimos las configuraciones para la vista de email mailController = new MFMailComposeViewController (); mailController.SetToRecipients (new string[]{"*****@*****.**"}); mailController.SetSubject ("Contacto"); mailController.SetMessageBody ("", false); mailController.Finished += ( object o, MFComposeResultEventArgs args) => { Console.WriteLine (args.Result.ToString ()); args.Controller.DismissViewController (true, null); }; this.PresentViewController (mailController, true, null); }; // arreglo de botones para toolbar UIBarButtonItem[] items = new UIBarButtonItem[] { btnacercaDe, flexibleWidth1, btnFixBuy, flexibleWidth2, btnEmail}; // agregar los botones a la toolbar toolbar.SetItems (items, false); // agregar la vista a la pantalla this.View.AddSubview (toolbar); try{ //Leemos el servicio de los banners this.bannersService = new BannersService (); banners = bannersService.All (); } catch (System.Net.WebException){ UIAlertView alert = new UIAlertView () { Title = "UPS :S", Message = "Hubo un error al conectarse a internet la seccion de banners no puede mostrarse, por favor verifica tu conexión a internet" }; alert.AddButton("Aceptar"); alert.Show (); } button = new UIButton (new CGRect (0, 0, bannerImage.Bounds.Width, bannerImage.Bounds.Height)); bannerImage.Add (button); button.TouchUpInside += (sender, e) => { try{ if(bannerError == false){ if(element.imagen != ""){ NSUrl url = new NSUrl (element.link); UIApplication.SharedApplication.OpenUrl (url); } } }catch(Exception){ //solo atrapamos la excepcion, no hacemos nada } }; }
public override void ViewDidLoad () { base.ViewDidLoad (); try{ UIBarButtonItem home = new UIBarButtonItem(); home.Style = UIBarButtonItemStyle.Plain; home.Target = this; home.Image = UIImage.FromFile("Images/home.png"); this.NavigationItem.RightBarButtonItem = home; UIViewController[] vistas = NavigationController.ViewControllers; home.Clicked += (sender, e) => { this.NavigationController.PopToViewController(vistas[0], true); }; //Configuramos la vista popup de nueva lista NewListView.Layer.BorderWidth = 1.0f; NewListView.Layer.BorderColor = UIColor.Black.CGColor; NewListView.Layer.CornerRadius = 8; tblLists.Add(this.NewListView); NewListView.Hidden = true; //Configuramos la vista popup de cantidad QuantityView.Layer.BorderWidth = 1.0f; QuantityView.Layer.BorderColor = UIColor.Black.CGColor; QuantityView.Layer.CornerRadius = 8; this.Add(QuantityView); QuantityView.Hidden = true; //Configuramos la vista de popup de listas ListsView.Layer.BorderWidth = 1.0f; ListsView.Layer.BorderColor = UIColor.Black.CGColor; ListsView.Layer.CornerRadius = 8; this.Add(this.ListsView); ListsView.Hidden = true; if(UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone){ this.btnMapa.SetBackgroundImage(Images.mapa,UIControlState.Normal); }else{ this.btnMapa.SetBackgroundImage(Images.mapa,UIControlState.Normal); } this.btnMapa.TouchUpInside += (sender, e) => { SecondMapViewController mapView = new SecondMapViewController(); mapView.setTienda(this.producto); NavigationController.PushViewController(mapView,true); }; var documents = Environment.GetFolderPath(Environment.SpecialFolder.Personal); _pathToDatabase = Path.Combine(documents, "db_sqlite-net.db"); //Hacemos la conexion a la bd para buscar si hay un usuario registrado using (var db = new SQLite.SQLiteConnection(_pathToDatabase )) { people = new List<Person> (from p in db.Table<Person> () select p); } NSUrl nsUrl = new NSUrl (producto.imagen); data = NSData.FromUrl (nsUrl); if(data!= null){ Images.imagenDetalle = UIImage.LoadFromData(data); this.imgProducto.Image = Images.imagenDetalle; }else{ this.imgProducto.Image = Images.sinImagen; } //Establecemos la informacion del producto this.lblNombre.Text = producto.nombre; double precio = Double.Parse(producto.precio); this.lblPrecio.Text = precio.ToString("C2"); this.lblDescripcion.Text = producto.descripcion; if(UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone){ this.lblDescripcion.Font = UIFont.SystemFontOfSize(10); }else{ this.lblDescripcion.Font = UIFont.SystemFontOfSize(25); } //Establecemos la informacion de la tienda NSUrl nsurl = new NSUrl(producto.tienda_imagen); NSData data1 = NSData.FromUrl(nsurl); if(data1 != null){ Images.imagenDetalleTienda = UIImage.LoadFromData(data1); this.imgTienda.Image = Images.imagenDetalleTienda; }else{ this.imgTienda.Image = Images.sinImagen; } this.lblTiendaNombre.Text = producto.tienda_nombre; this.lblTiendaDireccion.Text = producto.tienda_direccion + "\n \nTeléfono: " + producto.tienda_telefono; if(distancia != 0){ this.lblTiendaDistancia.Text = "A "+ Math.Round(distancia,2)+"km de tu ubicación"; }else{ this.lblTiendaDistancia.Text = "Distancia no disponible"; } this.lblVigencia.Text = "Vigencia del "+ producto.inicio_validez+ " Al "+ producto.final_validez; this.btnLista.TouchUpInside += (sender, e) => { if(people.Count > 0){ UIAlertView alert = new UIAlertView () { Title = "Añadir a mi lista", Message = "¿Deseas añadir este producto a una de tus listas?" }; alert.AddButton("Añadir"); alert.AddButton ("Cancelar"); alert.Show(); alert.Clicked += (s, o) => { if(o.ButtonIndex == 0){ QuantityView.Hidden = false; } }; }else{ UIAlertView alert = new UIAlertView () { Title = "Espera!", Message = "Debes iniciar sesión para acceder a tus listas" }; alert.AddButton("Aceptar"); alert.Show(); } }; int cantidad = 1; this.cmpCantidad.Text = cantidad.ToString(); btnMas.TouchUpInside += (sender, e) => { cantidad ++; this.cmpCantidad.Text = cantidad.ToString(); }; btnMenos.TouchUpInside += (sender, e) => { cantidad --; if(cantidad < 1){ UIAlertView alert = new UIAlertView () { Title = "Espera!", Message = "La cantidad minima es 1" }; alert.AddButton("Aceptar"); alert.Show(); cantidad = 1; this.cmpCantidad.Text = cantidad.ToString(); }else{ this.cmpCantidad.Text = cantidad.ToString(); } }; this.btnAceptarCantidad.TouchUpInside += (sender, e) => { try{ if(cmpCantidad.Text.Equals("")){ UIAlertView alert = new UIAlertView () { Title = "Espera!", Message = "Debes ingresar la cantidad" }; alert.AddButton("Registrar"); alert.AddButton ("Cancelar"); alert.Show(); } else{ cmpCantidad.ResignFirstResponder(); QuantityView.Hidden = true; ls = new ListsService(); Person persona = people.ElementAt(0); ls.setUserId (persona.ID.ToString()); List<ListsService> tableItems = ls.All (); if(tableItems.Count > 0){ this.tblLists.Source = new AddToListsTableSource (tableItems, this,this.producto,int.Parse(cmpCantidad.Text)); ListsView.Add(this.tblLists); this.tblLists.ReloadData(); ListsView.Hidden = false; cmpCantidad.Text = ""; }else{ UIAlertView alert = new UIAlertView () { Title = "No tienes listas", Message = "No tienes listas registradas, porfavor ve a \"Mis listas\" para crear una nueva" }; alert.AddButton("Registrar"); alert.AddButton ("Cancelar"); alert.Show(); } } }catch(System.FormatException ex ){ Console.WriteLine(ex.ToString()); UIAlertView alert = new UIAlertView () { Title = "Espera!", Message = "Debes ingresar solo números" }; alert.AddButton("Aceptar"); alert.Show(); QuantityView.Hidden = false; }catch(System.Net.WebException){ UIAlertView alert = new UIAlertView () { Title = "Ups :S", Message = "Algo salio mal,no se pudieron cargar tus listas, verifica tu conexión a internet e inténtalo de nuevo" }; alert.AddButton("Aceptar"); alert.Show(); }catch(System.Exception ext){ Console.WriteLine(ext.ToString()); UIAlertView alert = new UIAlertView () { Title = "Ups :S", Message = "Ocurrió un problema, inténtalo de nuevo" }; alert.AddButton("Aceptar"); alert.Show(); } }; btnCerrarLista.TouchUpInside += (sender, e) => { ListsView.Hidden = true; }; btnBadPrice.TouchUpInside += (sender, e) => { if (MainView.userId != 0) { UIAlertView alert = new UIAlertView () { Title = "Gracias por su reporte", Message = "Estamos revisando constantemente los precios de los productos y le agradecemos su aportación, ¿le gustaría reportar el precio de este producto para su revision?" } ; alert.AddButton ("SI"); alert.AddButton ("NO"); alert.Clicked += (s , o) => { try{ if(o.ButtonIndex == 0){ ReportService report = new ReportService(); String respuesta = report.SetData(MainView.userId.ToString(),this.producto.id,this.producto.tienda_id,this.producto.precio); if (respuesta.Equals("\"correct\"")){ UIAlertView alert2 = new UIAlertView () { Title = "Muchas gracias!", Message = "En FixBuy estamos comprometidos con ofrecer siempre la informacion correcta, muchas gracias por tu reporte =)" } ; alert2.AddButton ("Aceptar"); alert2.Show (); }else{ UIAlertView alert3 = new UIAlertView () { Title = "UPS :S", Message = "Algo salio mal, verifica tu conexión a internet e intentalo de nuevo" } ; alert3.AddButton ("Aceptar"); alert3.Show (); } } }catch(System.Net.WebException){ UIAlertView alerta = new UIAlertView () { Title = "UPS :S", Message = "Algo salio mal, verifica tu conexión a internet e intentalo de nuevo" } ; alerta.AddButton ("Aceptar"); alerta.Show (); }catch(Exception){ UIAlertView alerta = new UIAlertView () { Title = "UPS :S", Message = "Algo salio mal, por favor intentalo de nuevo" } ; alerta.AddButton ("Aceptar"); alerta.Show (); } }; alert.Show (); } else { UIAlertView alert = new UIAlertView () { Title = "Espera!", Message = "Debes iniciar sesión para poder reportar el precio incorrecto" } ; alert.AddButton ("Aceptar"); alert.Show (); } }; btnFacebook.TouchUpInside += (sender, e) => { try{ if(MainView.isWithFacebook == true){ UIAlertView alert = new UIAlertView () { Title = "Quieres publicar este producto?", Message = "Deseas publicar este producto en tu perfil de Facebook?" } ; alert.AddButton ("Aceptar"); alert.AddButton("Cancelar"); alert.Clicked += (s , o) => { if(o.ButtonIndex == 0){ var post = new NSMutableDictionary (); if(data != null){ post.Add (new NSString ("message"), new NSString (producto.imagen+ "\t"+producto.nombre+ "\t("+producto.descripcion+")" + "\nGracias a FixBuy encontre mi producto =D")); }else{ post.Add (new NSString ("message"), new NSString (producto.nombre + "\t("+producto.descripcion+")" + "\nGracias a FixBuy encontre mi producto =D ")); } // Ask for publish_actions permissions in context if (!FBSession.ActiveSession.Permissions.Contains ("publish_actions")) { // No permissions found in session, ask for it FBSession.ActiveSession.RequestNewPublishPermissions (new [] { "publish_actions" }, FBSessionDefaultAudience.Friends, (session, error) => { if (error != null) InvokeOnMainThread (() => new UIAlertView ("Ups =S", "Ocurrio un error intentalo de nuevo", null, "Aceptar", null).Show ()); else { // If permissions granted, publish the story FBRequestConnection.StartWithGraphPath ("me/feed", post, "POST", (connection, result, err) => { if (err != null) InvokeOnMainThread (() => new UIAlertView ("Ups =S", "Ocurrio un error intentalo de nuevo", null, "Aceptar", null).Show ()); else { HelloId = (result as FBGraphObject)["id"] as NSString; InvokeOnMainThread (() => new UIAlertView ("Producto publicado =)", "El producto que FixBuy te ayudo a encontrar a sido publicado en tu biografia =)", null, "Aceptar", null).Show ()); } }); } }); } else { // If permissions is found, publish the story FBRequestConnection.StartWithGraphPath ("me/feed", post, "POST", (connection, result, err) => { if (err != null) InvokeOnMainThread (() => new UIAlertView ("Ups =S", "Ocurrio un error intentalo de nuevo", null, "Ok", null).Show ()); else { HelloId = (result as FBGraphObject)["id"] as NSString; InvokeOnMainThread (() => new UIAlertView ("Producto publicado =)", "El producto que FixBuy te ayudo a encontrar a sido publicado en tu biografia =)", null, "Aceptar", null).Show ()); } }); } } }; alert.Show (); }else{ InvokeOnMainThread (() => new UIAlertView ("No has entrado a Facebook", "Debes iniciar sesion en Facebook para poder publicar tu producto, por favor regresa a la pantalla inicial para iniciar sesion en Facebook", null, "Aceptar", null).Show ()); } }catch(Exception exc){ Console.WriteLine("UPS: " + exc.ToString()); } //Console.WriteLine(HelloId.ToString()); }; btnNuevaLista.TouchUpInside += (sender, e) => { this.NewListView.Hidden = false; }; btnAceptarNuevaLista.TouchUpInside += (sender, e) => { try{ if(cmpNewList.Text == ""){ UIAlertView alert = new UIAlertView () { Title = "Espera!", Message = "Debes ingresar el nombre de la lista" }; alert.AddButton("Aceptar"); alert.Show (); }else{ nls = new NewListService(); String respuesta = nls.SetListData(cmpNewList.Text, MainView.userId.ToString()); if(respuesta.Equals("\"lista ya existe\"")){ UIAlertView alert = new UIAlertView () { Title = "Ups :S", Message = "Ese nombre de lista ya se encuentra registrado" }; alert.AddButton("Aceptar"); alert.Show (); //cmpNewList.Hidden = true; cmpNewList.Text = ""; cmpNewList.ResignFirstResponder(); }else{ UIAlertView alert = new UIAlertView () { Title = "Lista creada", Message = "Tu nueva lista \""+cmpNewList.Text+"\" ha sido creada =D" }; alert.AddButton("Aceptar"); alert.Show (); ls = new ListsService(); ls.setUserId(MainView.userId.ToString()); List<ListsService> items = ls.All (); this.tblLists.Source = new AddToListsTableSource(items,this,producto,1); this.tblLists.ReloadData(); cmpNewList.Text = ""; NewListView.Hidden = true; cmpNewList.ResignFirstResponder(); } } }catch(System.Net.WebException){ UIAlertView alert = new UIAlertView () { Title = "Ups =S", Message = "Algo salio mal, verifica tu conexión a internet e intentalo de nuevo" }; alert.AddButton("Aceptar"); alert.Show (); }catch(Exception exc){ Console.WriteLine(exc.ToString()); UIAlertView alert = new UIAlertView () { Title = "Ups =S", Message = "Algo salio mal, por favor intentalo de nuevo" }; alert.AddButton("Aceptar"); alert.Show (); } }; btnCerrarNombreNL.TouchUpInside += (sender, e) => { this.NewListView.Hidden = true; this.cmpNewList.ResignFirstResponder(); }; }catch(Exception e){ Console.WriteLine (e.ToString()); UIAlertView alert = new UIAlertView () { Title = "Ups =S", Message = "Algo salio mal, por favor intentalo de nuevo." }; alert.AddButton("Aceptar"); alert.Show (); } try{ //Registramos la visita al producto en la aplicacion web RegisterVisit(producto.tienda_id,MainView.userId); } catch(Exception){ /*Atrapamos la excepcion en caso de que el registro de la visita no pueda hacerse sin mostrar ningun mensaje ni detener el flujo de la aplicacion*/ } try{ //Leemos el servicio de los banners this.bannersService = new BannersService (); banners = bannersService.All (); } catch (System.Net.WebException){ UIAlertView alert = new UIAlertView () { Title = "UPS :S", Message = "Hubo un error al conectarse a internet la seccion de banners no puede mostrarse, por favor verifica tu conexión a internet" }; alert.AddButton("Aceptar"); alert.Show (); } button = new UIButton (new CGRect (0, 0, bannerImage.Bounds.Width, bannerImage.Bounds.Height)); bannerImage.Add (button); button.TouchUpInside += (sender, e) => { try{ if(bannerError == false){ if(element.imagen != ""){ NSUrl url = new NSUrl (element.link); UIApplication.SharedApplication.OpenUrl (url); } } }catch(Exception){ //solo atrapamos la excepcion, no hacemos nada } }; }
public override void ViewDidLoad() { base.ViewDidLoad(); this.Title = "Menú"; //Ocultamos el boton de tiendas registradas temporalmente //btnTiendas.Hidden = true; //btnInfo2.Hidden = true; var documents = Environment.GetFolderPath(Environment.SpecialFolder.Personal); _pathToDatabase = Path.Combine(documents, "db_sqlite-net.db"); //Creamos la base de datos y la tabla de persona, en caso de que ya exista no hace nada. using (var conn = new SQLite.SQLiteConnection(_pathToDatabase)) { conn.CreateTable <Person>(); } //Hacemos la conexion a la bd para buscar si hay un usuario registrado using (var db = new SQLite.SQLiteConnection(_pathToDatabase)) { people = new List <Person> (from p in db.Table <Person> () select p); } //Establecemos las imagenes de los botones setButtonImages(); //Eventos para los botones de informacion this.btnInfo1.TouchUpInside += (sender, e) => { ToastView view = new ToastView("Busca productos por código de barras o nombre", 3000); view.SetGravity(ToastGravity.Center, 0, 0); view.Show(); }; this.btnInfo2.TouchUpInside += (sender, e) => { ToastView view = new ToastView("Localiza todas las tiendas registradas en FIXBUY", 3000); view.SetGravity(ToastGravity.Center, 0, 0); view.Show(); }; this.btnInfo3.TouchUpInside += (sender, e) => { ToastView view = new ToastView("Administra tus listas y los productos en ellas", 3000); view.SetGravity(ToastGravity.Center, 0, 0); view.Show(); }; this.btnInfo4.TouchUpInside += (sender, e) => { ToastView view = new ToastView("Inicia Sesion en FIXBUY para poder acceder a tus listas y más!", 3000); view.SetGravity(ToastGravity.Center, 0, 0); view.Show(); }; this.btnInfo5.TouchUpInside += (sender, e) => { ToastView view = new ToastView("Establece tu ubicación para una busqueda mas eficaz!", 3000); view.SetGravity(ToastGravity.Center, 0, 0); view.Show(); }; this.btnInfo6.TouchUpInside += (sender, e) => { ToastView view = new ToastView("Consulta los servicios que ofrece FIXBUY", 3000); view.SetGravity(ToastGravity.Center, 0, 0); view.Show(); }; this.btnCerrarSesion.TouchUpInside += (sender, e) => { UIAlertView alert = new UIAlertView() { Title = "Te vas? =(", Message = "Estas seguro que quieres cerrar la sesión?" }; alert.AddButton("Aceptar"); alert.AddButton("Cancelar"); alert.Clicked += (s, o) => { if (o.ButtonIndex == 0) { using (var conn = new SQLite.SQLiteConnection(_pathToDatabase)) { conn.DropTable <Person>(); conn.CreateTable <Person>(); } this.NavigationController.PopViewController(true); } }; alert.Show(); }; //Boton de buscar productos this.btnScan.TouchUpInside += (sender, e) => { // Configurar el escaner de codigo de barras. picker = new ScanditSDKRotatingBarcodePicker(MainView.appKey); picker.OverlayController.Delegate = new overlayControllerDelegate(picker, this); picker.OverlayController.ShowToolBar(true); picker.OverlayController.ShowSearchBar(true); picker.OverlayController.SetToolBarButtonCaption("Cancelar"); picker.OverlayController.SetSearchBarKeyboardType(UIKeyboardType.Default); picker.OverlayController.SetSearchBarPlaceholderText("Búsqueda por nombre de producto"); picker.OverlayController.SetCameraSwitchVisibility(SICameraSwitchVisibility.OnTablet); picker.OverlayController.SetTextForInitializingCamera("Iniciando la camara"); this.PresentViewController(picker, true, null); picker.StartScanning(); }; //Boton de tiendas Registradas this.btnTiendas.TouchUpInside += (sender, e) => { this._loadPop = new LoadingOverlay(UIScreen.MainScreen.Bounds); this.Add(this._loadPop); mvp = new MapViewController(); Task.Factory.StartNew( () => { System.Threading.Thread.Sleep(1 * 1000); } ).ContinueWith( t => { this._loadPop.Hide(); this.NavigationController.PushViewController(mvp, true); }, TaskScheduler.FromCurrentSynchronizationContext() ); }; //Boton Mis listas this.btnListas.TouchUpInside += (sender, e) => { if (people.Count == 1) { MyListsView myLists = new MyListsView(); this.NavigationController.PushViewController(myLists, true); } else { UIAlertView alert = new UIAlertView() { Title = "Espera!", Message = "Debes iniciar sesión para acceder a tus listas" }; alert.AddButton("Aceptar"); alert.Show(); } }; //Boton Iniciar Sesion this.btnSesion.TouchUpInside += (sender, e) => { if (people.Count == 1) { UIAlertView alert = new UIAlertView() { Title = "Espera!", Message = "Ya has iniciado sesión" }; alert.AddButton("Aceptar"); alert.Show(); } else { LoginView login = new LoginView(); this.NavigationController.PushViewController(login, true); } }; //Boton Novedades this.btnNovedades.TouchUpInside += (sender, e) => { StatesView statesView = new StatesView(); this.NavigationController.PushViewController(statesView, true); }; //Boton Nuestros Servicios this.btnServicios.TouchUpInside += (sender, e) => { AboutUsView aboutUS = new AboutUsView(); this.NavigationController.PushViewController(aboutUS, true); }; // creacion de la barra de herramientas float toolbarHeight = 44; toolbar = new UIToolbar(new CGRect(0 , this.View.Frame.Height - this.NavigationController.NavigationBar.Frame.Height , this.View.Frame.Width, toolbarHeight)); toolbar.AutoresizingMask = UIViewAutoresizing.FlexibleTopMargin | UIViewAutoresizing.FlexibleWidth; toolbar.TintColor = UIColor.FromRGB(7, 129, 181); // boton acerca de UIBarButtonItem btnacercaDe = new UIBarButtonItem(UIBarButtonSystemItem.Bookmarks); btnacercaDe.Clicked += (s, e) => { UIAlertView alert = new UIAlertView() { Title = "Que deseas consultar? " }; alert.AddButton("Terminos y Condiciones"); alert.AddButton("Aviso de Privacidad"); alert.Clicked += (sen, o) => { if (o.ButtonIndex == 0) { TermsView termsView = new TermsView(); NavigationController.PushViewController(termsView, true); } else { PrivacyNoticeView privacyNoticeView = new PrivacyNoticeView(); NavigationController.PushViewController(privacyNoticeView, true); } }; alert.Show(); }; // fixed width //UIBarButtonItem fixedWidth = new UIBarButtonItem (UIBarButtonSystemItem.FixedSpace); //fixedWidth.Width = 35; // flexible width space UIBarButtonItem flexibleWidth1 = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace); // boton fixBuy UIBarButtonItem btnFixBuy = new UIBarButtonItem(UIBarButtonSystemItem.Search); btnFixBuy.Clicked += (s, e) => { NSUrl url = new NSUrl(@"http://fixbuy.mx"); UIApplication.SharedApplication.OpenUrl(url); }; // flexible width space UIBarButtonItem flexibleWidth2 = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace); // boton email UIBarButtonItem btnEmail = new UIBarButtonItem(UIBarButtonSystemItem.Compose); btnEmail.Clicked += (s, e) => { //Añadimos las configuraciones para la vista de email mailController = new MFMailComposeViewController(); mailController.SetToRecipients(new string[] { "*****@*****.**" }); mailController.SetSubject("Contacto"); mailController.SetMessageBody("", false); mailController.Finished += (object o, MFComposeResultEventArgs args) => { Console.WriteLine(args.Result.ToString()); args.Controller.DismissViewController(true, null); }; this.PresentViewController(mailController, true, null); }; // arreglo de botones para toolbar UIBarButtonItem[] items = new UIBarButtonItem[] { btnacercaDe, flexibleWidth1, btnFixBuy, flexibleWidth2, btnEmail }; // agregar los botones a la toolbar toolbar.SetItems(items, false); // agregar la vista a la pantalla this.View.AddSubview(toolbar); try{ //Leemos el servicio de los banners this.bannersService = new BannersService(); banners = bannersService.All(); } catch (System.Net.WebException) { UIAlertView alert = new UIAlertView() { Title = "UPS :S", Message = "Hubo un error al conectarse a internet la seccion de banners no puede mostrarse, por favor verifica tu conexión a internet" }; alert.AddButton("Aceptar"); alert.Show(); } button = new UIButton(new CGRect(0, 0, bannerImage.Bounds.Width, bannerImage.Bounds.Height)); bannerImage.Add(button); button.TouchUpInside += (sender, e) => { try{ if (bannerError == false) { if (element.imagen != "") { NSUrl url = new NSUrl(element.link); UIApplication.SharedApplication.OpenUrl(url); } } }catch (Exception) { //solo atrapamos la excepcion, no hacemos nada } }; }