]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blobdiff - carpeta/disenio_grafico/src/Controlador/AfiliadoSolicitanteController.cs
* Ahora si, el codigo queda mejor
[z.facultad/75.10/miklolife.git] / carpeta / disenio_grafico / src / Controlador / AfiliadoSolicitanteController.cs
index ccd430e8a45588f12cb7d5bf01a999818c61707b..74f115043039dffffc4c391e8e98aebaa9109957 100644 (file)
@@ -3,20 +3,34 @@ namespace Afiliacion {
 
 using Dominio.Afiliados;
 using Dominio.Planes;
+using Dominio;
+using com.db4o;
 
+using System;
 using System.Collections;
 
-public class AfiliadoSolicitanteController
+public class AfiliadoSolicitanteController : IDisposable
 {
        private ArrayList _afiliados;
        private ArrayList _solicitantes;
+       private ObjectContainer db;
+
+       public AfiliadoSolicitanteController ()
+       {
+               db = Db4o.openFile("os.yap");
+       }
+
+       public void Dispose ()
+       {
+               db.close ();
+       }
 
        public ArrayList obtenerSolicitantesAfiliar ()
        {
                return _solicitantes;
        }
 
-       public bool existeAfiliado (ETipoDocumento tipoDoc, int nroDoc)
+       public bool ExisteAfiliado (ETipoDocumento tipoDoc, int nroDoc)
        {
                foreach (Afiliado afil in _afiliados) {
                        if ((afil.TipoDocumento == tipoDoc) && (afil.NroDocumento == nroDoc))
@@ -25,7 +39,7 @@ public class AfiliadoSolicitanteController
                return false;
        }
 
-       public bool existeAfiliado (int codigo)
+       public bool ExisteAfiliado (int codigo)
        {
                foreach (Afiliado afil in _afiliados) {
                        if (afil.Codigo == codigo)
@@ -34,7 +48,7 @@ public class AfiliadoSolicitanteController
                return false;
        }
 
-       public ArrayList obtenerFamiliares (ETipoDocumento tipoDoc, int nroDoc)
+       public ArrayList ObtenerFamiliares (ETipoDocumento tipoDoc, int nroDoc)
        {
                ArrayList salida = new ArrayList ();
                /* Afiliado a = GETAFILIADO(tipoDoc, nroDoc
@@ -47,18 +61,14 @@ public class AfiliadoSolicitanteController
        
        public bool afiliarTitular (ETipoDocumento tipoDoc, int nroDo, Plan plan)
        {
-               /* Aca deberia ser : 
-                *
-                * recibir solicitante, plan :
-                *
-                * Afiliado a = new Afiliado (solicitante, plan, Now())
-                * _afiliados.Add (a);
-                * Save (a);
-                */
+               try {
+                       //do something with db4o
+               }
+               catch (Exception e){}
                return true;
        }
 
-       public ArrayList Buscar (/*PONER PARAMETROS DE BUSQUEDA*/)
+       public ArrayList Buscar (ETipoDocumento tipoDoc, int nroDoc)
        {
                ArrayList salida = new ArrayList ();
                /* Hacer busqueda */
@@ -68,23 +78,127 @@ public class AfiliadoSolicitanteController
        public void EstablecerPendiente() {}
        public void Visitado () {}
        public void EliminarSolicitante () {}
-       public void ExisteSolicitante () {}
-       public void AgregarSolicitante () {}
+
+       public bool ExisteSolicitante (ETipoDocumento tipoDoc, int nroDoc)
+       {
+               Solicitante c = new Solicitante (tipoDoc, nroDoc, null, null);
+               
+               bool existe = false;
+               try {
+                       //do something with db4o
+                       ObjectSet result = db.get(c);
+           if (result.next() != null)
+                               existe = true;
+               }
+               catch (Exception e) {
+                       Console.WriteLine (e);
+               }
+               return existe;
+       }
+
+       public void AgregarSolicitante (
+               ETipoDocumento tipoDoc, int nroDoc, string nombre, string apellido, string email,
+               DateTime fechaNac, string calle, int numero, int piso, string dpto, string telefono,
+               ESexo sexo, string disponibilidad, int cantidadfamiliares, string observaciones
+               )
+       {
+               Solicitante s = new Solicitante (tipoDoc, nroDoc, nombre, apellido);
+               s.EMail = email;
+               s.FechaNacimiento = fechaNac;
+               s.Sexo = sexo;
+               s.Disponibilidad = disponibilidad;
+               s.Familiares = cantidadfamiliares;
+               s.Observaciones = observaciones;
+               s.Pendiente = true;
+
+               /* La direccion */
+               SDireccion d = new SDireccion ();
+               d.Calle = calle;
+               d.Numero = numero;
+               d.Piso = piso;
+               d.Departamento = dpto;
+               d.CodigoPostal = "";
+               d.Provincia = EProvincia.RIO_NEGRO;
+               d.Telefono = telefono;
+
+               s.Direccion = d;
+
+               SaveSolicitante (s);
+       }
+
        public void EliminarAfiliado () {}
        public void ModificarAfiliado () {}
                
-       private bool Save (Afiliado a)
+       private bool SaveAfiliado (Afiliado a)
        {
                /* Salva en la DB */
                return true;
        }
 
-       private Afiliado Restore (int codigo)
+       private bool SaveSolicitante (Solicitante s)
+       {
+               try {
+                       //do something with db4o
+                       db.set (s);
+               }
+               catch (Exception e) {
+                       Console.WriteLine (e);
+               }
+               return true;
+       }
+
+       private Solicitante GetSolicitante (ETipoDocumento tipoDoc, int nroDoc)
        {
-               /* restora de la db */
-               return null;
+               Solicitante s = new Solicitante (tipoDoc, nroDoc, null, null);
+
+               ArrayList lst = GetSolicitantes (s);
+
+               if (lst.Count == 0)
+                       return null;
+
+               return (Solicitante)lst[0];
+       }
+
+       private ArrayList GetSolicitantes (Solicitante s)
+       {
+               ArrayList lst = new ArrayList ();
+               try {
+                       ObjectSet result = db.get(s);
+                       if (result == null)
+                               return lst;
+       
+                       while ((s = (Solicitante)result.next ()) != null)       {
+                               lst.Add (s);
+                       }
+               }
+               catch (Exception e) {
+                       Console.WriteLine (e);
+               }
+               return lst;
        }
        
+       public ArrayList ObtenerSolicitantesPendientes ()
+       {
+               Solicitante s = new Solicitante (0, 0, null, null);
+               Promotor p = null; // new Promotor (0, 0, null, null);
+               s.Promotor = p;
+               return GetSolicitantes (s);
+       }
+
+       public void AsociarPromotor (ETipoDocumento tipoDoc, int nroDoc, int promotor)
+       {
+               try {
+                       Solicitante s = GetSolicitante (tipoDoc, nroDoc);
+
+                       Promotor p = new Promotor (ETipoDocumento.DNI, 12345678, "123", "123");
+                       s.Promotor = p;
+                       SaveSolicitante (s);
+               }
+               catch (Exception e) {
+                       Console.WriteLine (e);
+               }
+       }
+
 }
 
 }