コード例 #1
0
ファイル: MainView.cs プロジェクト: saedaes/ProductFinder
        public override void ViewWillAppear(bool animated)
        {
            base.ViewWillAppear(animated);
            // Prepare the picker such that it starts up faster.
            SIBarcodePicker.Prepare(appKey, SICameraFacingDirection.Back);
            using (var db = new SQLite.SQLiteConnection(_pathToDatabase))
            {
                people         = new List <Person> (from p in db.Table <Person> () select p);
                states         = new List <State> (from s in db.Table <State> () select s);
                terms          = new List <Terms> (from t in db.Table <Terms> () select t);
                privacyNotices = new List <PrivacyNotice> (from pr in db.Table <PrivacyNotice> () select pr);
            }

            if (people.Count > 0)
            {
                Person user = people.ElementAt(0);
                MainView.userId = user.ID;
                Console.WriteLine("El Id de usuario es: " + user.ID);
            }

            if (states.Count > 0)
            {
                State estado = states.ElementAt(0);
                MainView.localityId = estado.localityId;
                Console.WriteLine("El Id de localidad es: " + estado.localityId);
            }


            if (terms.Count < 1)
            {
                UIAlertView alert = new UIAlertView()
                {
                    Title = "Espera!", Message = "Para poder utilizar FixBuy primero debes aceptar los terminos y condiciones"
                };
                alert.AddButton("Aceptar");
                alert.Clicked += (s, o) => {
                    TermsView termsView = new TermsView();
                    NavigationController.PushViewController(termsView, true);
                };
                alert.Show();
                return;
            }

            if (privacyNotices.Count < 1)
            {
                UIAlertView alert = new UIAlertView()
                {
                    Title = "Espera!", Message = "Para poder utilizar FixBuy primero debes aceptar el aviso de privacidad"
                };
                alert.AddButton("Aceptar");
                alert.Clicked += (s, o) => {
                    PrivacyNoticeView privacyNoticeView = new PrivacyNoticeView();
                    NavigationController.PushViewController(privacyNoticeView, true);
                };
                alert.Show();
                return;
            }
        }
コード例 #2
0
ファイル: ScanView.cs プロジェクト: saedaes/ProductFinder
        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
                }
            };
        }