internal static BannersService FromJObject(JObject jObject)
		{
			BannersService response = new BannersService();
			response.link = jObject["link"].ToString();
			response.titulo = jObject["title"].ToString();
			response.imagen = jObject ["image_url"].ToString ();

			return response;
		}
Beispiel #2
0
        internal static BannersService FromJObject(JObject jObject)
        {
            BannersService response = new BannersService();

            response.link   = jObject["link"].ToString();
            response.titulo = jObject["title"].ToString();
            response.imagen = jObject ["image_url"].ToString();

            return(response);
        }
Beispiel #3
0
        public List <BannersService> GetResponse()
        {
            WebClient             client       = new WebClient();
            Stream                stream       = client.OpenRead(this.resultURL);
            StreamReader          reader       = new StreamReader(stream);
            JArray                responseJSON = JArray.Parse(reader.ReadLine());
            List <BannersService> responseList = new List <BannersService>();

            foreach (JObject jobject in responseJSON)
            {
                BannersService response = BannersService.FromJObject(jobject);

                responseList.Add(response);
            }

            return(responseList);
        }
Beispiel #4
0
        public override void ViewWillAppear(bool animated)
        {
            base.ViewWillAppear(animated);

            x = 0;

            timer = NSTimer.CreateRepeatingScheduledTimer(TimeSpan.FromSeconds(5), delegate {
                try{
                    if (banners.Count > 0)
                    {
                        element           = banners.ElementAt(x);
                        NSUrl nsurl       = new NSUrl(element.imagen);
                        NSData data1      = NSData.FromUrl(nsurl);
                        bannerImage.Image = UIImage.LoadFromData(data1);
                        if (x == banners.Count - 1)
                        {
                            x = 0;
                        }
                        else
                        {
                            x++;
                        }
                    }
                    else
                    {
                        bannerImage.Hidden = true;
                    }
                } catch (System.NullReferenceException) {
                    timer.Invalidate();
                    button.Dispose();
                    Console.WriteLine("primera excepcion");
                    bannerError = true;
                } catch (System.ArgumentNullException) {
                    timer.Invalidate();
                    button.Dispose();
                    Console.WriteLine("segunda excepcion");
                    bannerError = true;
                } catch (Exception) {
                    timer.Invalidate();
                    button.Dispose();
                    Console.WriteLine("tercera excepcion");
                    bannerError = true;
                }
            });
        }
Beispiel #5
0
        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 ();

			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 ViewWillAppear (bool animated)
		{
			base.ViewWillAppear (animated);

			x = 0;

			timer = NSTimer.CreateRepeatingScheduledTimer (TimeSpan.FromSeconds (5), delegate {
				try{
					if (banners.Count > 0){
						element = banners.ElementAt (x);
						NSUrl nsurl = new NSUrl(element.imagen);
						NSData data1 = NSData.FromUrl(nsurl);
						bannerImage.Image = UIImage.LoadFromData (data1);
						if(x == banners.Count-1){
							x= 0;
						}else{
							x++;
						}
					}else{
						bannerImage.Hidden = true;
					}
				} catch (System.NullReferenceException){
					timer.Invalidate ();
					button.Dispose();
					Console.WriteLine("primera excepcion");
					bannerError = true;
				} catch (System.ArgumentNullException){
					timer.Invalidate();
					button.Dispose();
					Console.WriteLine("segunda excepcion");
					bannerError = true;
				} catch (Exception){
					timer.Invalidate();
					button.Dispose();
					Console.WriteLine("tercera excepcion");
					bannerError = true;
				}
			});
		}
Beispiel #8
0
		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
				}
			};
		}
Beispiel #9
0
		public override void ViewWillAppear (bool animated)
		{
			base.ViewWillAppear (animated);

			x = 0;

			timer = NSTimer.CreateRepeatingScheduledTimer (TimeSpan.FromSeconds (5), delegate {
				try{
					if (banners.Count > 0){
						element = banners.ElementAt (x);
						NSUrl nsurl = new NSUrl(element.imagen);
						NSData data1 = NSData.FromUrl(nsurl);
						bannerImage.Image = UIImage.LoadFromData (data1);
						if(x == banners.Count-1){
							x= 0;
						}else{
							x++;
						}
					}else{
						bannerImage.Hidden = true;
					}
				} catch (System.NullReferenceException){
					timer.Invalidate ();
					button.Dispose();
					Console.WriteLine("primera excepcion");
					bannerError = true;
				} catch (System.ArgumentNullException){
					timer.Invalidate();
					button.Dispose();
					Console.WriteLine("segunda excepcion");
					bannerError = true;
				} catch (Exception){
					timer.Invalidate();
					button.Dispose();
					Console.WriteLine("tercera excepcion");
					bannerError = true;
				}
			});

			//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);
			}
			if (people.Count > 0) {
				Person usuario = people.ElementAt (0);
				MainView.userId = usuario.ID;
				this.lblusuario.Text = usuario.Name + " "+usuario.LastName;
				this.btnCerrarSesion.Hidden = false;
			} else {
				this.lblusuario.Text = "Inicia Sesión";
				this.btnCerrarSesion.Hidden = true;
			}
		}
Beispiel #10
0
        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
                }
            };
        }
Beispiel #11
0
        public override void ViewWillAppear(bool animated)
        {
            base.ViewWillAppear(animated);

            x = 0;

            timer = NSTimer.CreateRepeatingScheduledTimer(TimeSpan.FromSeconds(5), delegate {
                try{
                    if (banners.Count > 0)
                    {
                        element           = banners.ElementAt(x);
                        NSUrl nsurl       = new NSUrl(element.imagen);
                        NSData data1      = NSData.FromUrl(nsurl);
                        bannerImage.Image = UIImage.LoadFromData(data1);
                        if (x == banners.Count - 1)
                        {
                            x = 0;
                        }
                        else
                        {
                            x++;
                        }
                    }
                    else
                    {
                        bannerImage.Hidden = true;
                    }
                } catch (System.NullReferenceException) {
                    timer.Invalidate();
                    button.Dispose();
                    Console.WriteLine("primera excepcion");
                    bannerError = true;
                } catch (System.ArgumentNullException) {
                    timer.Invalidate();
                    button.Dispose();
                    Console.WriteLine("segunda excepcion");
                    bannerError = true;
                } catch (Exception) {
                    timer.Invalidate();
                    button.Dispose();
                    Console.WriteLine("tercera excepcion");
                    bannerError = true;
                }
            });

            //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);
            }
            if (people.Count > 0)
            {
                Person usuario = people.ElementAt(0);
                MainView.userId             = usuario.ID;
                this.lblusuario.Text        = usuario.Name + " " + usuario.LastName;
                this.btnCerrarSesion.Hidden = false;
            }
            else
            {
                this.lblusuario.Text        = "Inicia Sesión";
                this.btnCerrarSesion.Hidden = true;
            }
        }