public DetailPage(Personas per, Usuarios usu, UltimaConexion ulti) { InitializeComponent(); //SE INSTANCIAN LOS OBJETOS GLOBALES Persona = new Personas().NewPersona(per); Usuario = new Usuarios().NewUsuario(usu); UltimaConexion = new UltimaConexion().NewUltimaConexion(ulti); BindingContext = DatosPagina = new MasterDetailPageUserInfoViewModel(Persona, Usuario, UltimaConexion); }
//=============================================================================================== //=============================================================================================== //CONSTRUCTOR DE LA CLASE (APP STAND ALONE) public DetailPage(Personas per, Usuarios usu, UltimaConexion ulti) { InitializeComponent(); //SE INSTANCIAN LOS OBJETOS Y SE EJECUTA EL ENLACE DE LA CLASE VISTA (VIEW) Y LA CLASE (VIEWMODEL) Persona = new Personas().NewPersona(per); Usuario = new Usuarios().NewUsuario(usu); UltimaConexion = new UltimaConexion().NewUltimaConexion(ulti); //SE INSTANCIA LOS DATOS DE LA PAGINA MEDIANTE EL LLAMADO DE LA CLASE "MasterDetailPageUserInfoViewModel.cs" //JUNTO CON LOS DATOS DEL USUARIO QUE SE ENCUENTRE LOGGEADO BindingContext = DatosPagina = new MasterDetailPageUserInfoViewModel(Persona, Usuario, UltimaConexion); }
//============================================================================================ //============================================================================================ //CONSTRUCTOR (APP STAND ALONE) public MasterPage(Personas per, Usuarios usu, UltimaConexion ultima) { InitializeComponent(); //SE INSTANCIAN LOS OBJETOS Persona, Usuario y UltimaConexion PARA LUEGO LLENARLOS CON LOS DATOS //DEL USUARIO QUE SE ENCUENTRA NAVEGANDO Persona = new Personas().NewPersona(per); Usuario = new Usuarios().NewUsuario(usu); Ultimaconexion = new UltimaConexion().NewUltimaConexion(ultima); //SE INSTANCIA LOS DATOS DE LA PAGINA MEDIANTE EL LLAMADO DE LA CLASE "MasterDetailPageUserInfoViewModel.cs" //JUNTO CON LOS DATOS DEL USUARIO QUE SE ENCUENTRE LOGGEADO BindingContext = DatosPagina = new MasterDetailPageUserInfoViewModel(Persona, Usuario, Ultimaconexion); //CONFIGURACION DEL MENU DE OPCIONES DEPENDIENDO DEL NIVEL DEL USUARIO QUE SE ENCUENTRE LOGGEADO //EL MENU LATERAL LLENARA LAS OPCIONES Y CARGARA LA INFORMACION DE MANERA DISTINTA. EN OTRAS PALABRAS, //SE GENERO UNA LISTA DE OPCIONES PARA EL USUARIO ADMINISTRATOR Y OTRA PARA LOS USUARIOS DE BAJO NIVEL switch (Usuario.NivelUsuario) { //USUARIO INVITADO (GUEST) case 0: ListaNavegacion.ItemsSource = new OpcionesModel().OpcionesNivelGuest(); break; //USUARIO DE BAJO NIVEL case 1: ListaNavegacion.ItemsSource = new OpcionesModel().OpcionesNivelBajo(); break; //USUARIO DE MEDIO NIVEL case 5: ListaNavegacion.ItemsSource = new OpcionesModel().OpcionesNivelMedio(); break; //USUARIO DE ALTO NIVEL case 8: ListaNavegacion.ItemsSource = new OpcionesModel().OpcionesNivelSuperior(); break; //USUARIO ADMINISTRADOR case 10: ListaNavegacion.ItemsSource = new OpcionesModel().OpcionesAdministrator(); break; } }
//=============================================================================================== //=============================================================================================== //CONSTRUCTOR DE LA CLASE public MasterDetailPageUserInfoModel(Personas Persona, Usuarios Usuario, UltimaConexion Ultima) { if (Persona.Cedula == Usuario.Cedula) { //SE CARGA LA INFORMACION QUE VA A SER DESPLEGADA username = Metodos.Mayuscula(Usuario.Username); if (Persona.Cedula == 0) { fullname = "N/A."; } else { fullname = Persona.Apellidos + ", " + Persona.Nombres + "."; } ultimaconexion = Ultima.UltimaCon.ToString(); usericonfile = "UserIcon.png"; } }
//=============================================================================================== //=============================================================================================== //CONSTRUCTOR DE LA CLASE (APP STAND ALONE) public MasterDetailPageUserInfoViewModel(Personas Persona, Usuarios Usuario, UltimaConexion ultimaconexion) { //SE INSTANCIA EL OBJETO MODEL DE LA CLASE "MasterDetailPageUserInfoModel.cs" CON LA //INFORMACION DEL USUARIO LOGGEADO MasterPageUserInfo = new MasterDetailPageUserInfoModel(Persona, Usuario, ultimaconexion); }
public UserMainPage(Personas Persona, Usuarios Usuario) { InitializeComponent(); //==================================================================== //==================================================================== //SE GENERA UN NUEVO REGISTRO EN LA TABLA UltimaConexion UltimaConexion = new UltimaConexion().NewUltimaConexion(Persona, Usuario); //==================================================================== //==================================================================== //SE GENERA LA APAERTURA DE LA BASE DE DATOS using (SQLiteConnection connection = new SQLiteConnection(App.FileName)) { //CREACION E INICIALIZACION DE VARIABLES USADAS DENTRO DE LA CONEXION CON LA BASE DE DATOS List <UltimaConexion> UltimaConexionUsuario = new List <UltimaConexion>(); //DE NO EXISTIR SE CREA LA TABLA "UltimaConexion" connection.CreateTable <UltimaConexion>(); //INSERTAMOS EL NUEVO REGISTRO connection.Insert(UltimaConexion); //RECORREMOS CADA UNO DE LOS REGISTRO DENTRO DE LA TABLA "UltimaConexion" foreach (UltimaConexion registro in connection.Table <UltimaConexion>().ToList()) { //EVALUAMOS SI LA CEDULA DEL REGISTRO EN EL QUE NOS ENCONTRAMOS ES IGUAL A LA CEDULA DEL USUARIO QUE ACABA DE INGRESAR if (registro.Cedula == Usuario.Cedula) { //SI LA CEDULA DEL REGISTRO ES IGUAL A LA CEDULA DEL USUARIO LOGGEADO SE AGREGA A LA LISTA "UltimaConexionUsuario" UltimaConexionUsuario.Add(registro); } } //EVALUAMOS LA LISTA "UltimaConexionUsuario" if (UltimaConexionUsuario.Any() && //SE EVALUA SI HAY REGISTROS DENTRO DE LA LISTA UltimaConexionUsuario.Count > 1) //SE EVALUA SI HAY MAS DE UN REGISTRO DENTRO DE LA LISTA { //CREAMOS E INICIALIZAMOD UNA VARIABLE CONTADOR int cont = 0; //RECORREMOS TODOS LOS REGISTROS DENTRO DE LA LISTA "UltimaConexionUsuario" foreach (UltimaConexion registro in UltimaConexionUsuario) { //SI NOS ENCONTRAMOS EN LA PENULTIMA POSICION O EL PENULTIMO REGISTRO DETENEMOS EL RECORRIDO //TOMAMOS LA INFORMACION DE ESE REGISTRO Y CERRAMOS EL CICLO if (cont == (UltimaConexionUsuario.Count() - 2)) { //LA VARIABLE "UltimaConexionAux" ALMACENA ESTE REGISTRO Y LO ENVIA COMO PARAMETRO PARA LA PAGINA "DetailPage.xaml.cs" UltimaConexionAux = new UltimaConexion().NewUltimaConexion(registro); //PARAMOS EL CICLO break; } //EL CONTADOR CRECE EN UNA UNIDAD cont++; } } else { //NO EXISTE NINGUN REGISTRO DEL USUARIO LOGGEADO DENTRO DE LA TABLA "UltimaConexion", SE ENVIA COMO PARAMETRO //LA VARIABLE "UltimaConexionAux". UltimaConexionAux = new UltimaConexion().NewUltimaConexion(UltimaConexion); } } //SE INDICAN E INICIALIZAN QUIENES VAN A SER LAS PAGINAS MasterPage y DetailPage, ADEMAS DE ENVIAR LOS PARAMETROS //SOLICITADOS AL CONSTRUCTOR DE CADA PAGINA //SE NOTIFICA A LA APLICACION QUE LA PAGINA ORIGEN DE LAS PAGINAS "MasterPage.xaml.cs" Y "DetailPage.xaml.cs" App.MasterDetail = this; //SE INDICA E INVOCA LAS PAGINAS QUE FUNCIONARAN COMO "MasterPage.xaml.cs" Y "DetailPage.xaml.cs" this.Master = new MasterPage(Persona, Usuario, UltimaConexion); this.Detail = new NavigationPage(new DetailPage(Persona, Usuario, UltimaConexionAux)); //SE GENERA EL MENSAJE "Bienvenido" AL MOMENTO DE INGRESAR Toast.MakeText(Android.App.Application.Context, "Bienvenido " + Usuario.Username, ToastLength.Short).Show(); }