/// <summary> /// Metodo que añade un nuevo contacto a la base de datos a partir de un objeto contacto de tipo ContactoData /// </summary> /// <param name="contacto"></param> /// <returns></returns> public int AddContacto(ContactoData contacto) { if (contacto == null) return -1; if (contacto.nif == "" || contacto.nombre == "") return -1; try { using (GestionEmpresasEntities bd = new GestionEmpresasEntities()) { Contacto nueva = new Contacto(); nueva.idContacto = contacto.idContacto; nueva.nif = contacto.nif; nueva.nombre = contacto.nombre; nueva.idEmpresa = contacto.idEmpresa; bd.Contacto.Add(nueva); bd.SaveChanges(); return nueva.idContacto; } } catch (SqlException ex) { FaultException fault = new FaultException("Error SQL: " + ex.Message, new FaultCode("SQL")); throw fault; } catch (Exception ex) { FaultException fault = new FaultException("Error: " + ex.Message, new FaultCode("General")); throw fault; } }
/// <summary> /// Metodo que a partir de un objeto e id me edita un contacto /// </summary> /// <param name="contacto"></param> /// <param name="id"></param> /// <returns></returns> public int EditContacto(ContactoData contacto, int id) { try { using (GestionEmpresasEntities bd = new GestionEmpresasEntities()) { var consulta = from contact in bd.Contacto where contact.idContacto == id select contact; Contacto nueva = consulta.First(); nueva.idContacto = contacto.idContacto; nueva.idEmpresa = contacto.idEmpresa; nueva.nif = contacto.nif; nueva.nombre = contacto.nombre; bd.SaveChanges(); return nueva.idContacto; } } catch (SqlException ex) { FaultException fault = new FaultException("Error SQL: " + ex.Message, new FaultCode("SQL")); throw fault; } catch (Exception ex) { FaultException fault = new FaultException("Error: " + ex.Message, new FaultCode("General")); throw fault; } }
/// <summary> /// Metodo que elimina un contacto a partir de un objeto contacto de tipo ContactoData y de un id /// </summary> /// <returns></returns> public bool DeleteContacto(ContactoData contacto, int id) { try { using (GestionEmpresasEntities db = new GestionEmpresasEntities()) { var resultado = from contact in db.Contacto where (contact.idContacto == id) select contact; // eliminamos los telefonos, emails y direcciones asociados al contacto foreach (Telefono t in resultado.First().Telefono) { db.Telefono.Remove(t); } foreach (Email e in resultado.First().Email) { db.Email.Remove(e); } foreach (Direccion d in resultado.First().Direccion) { db.Direccion.Remove(d); } db.Contacto.Remove(resultado.First()); // Borra el objeto db.SaveChanges(); // Se guarda los campios realizados return true; } } catch (SqlException ex) { FaultException fault = new FaultException("ERROR SQL: " + ex.Message, new FaultCode("SQL")); throw fault; } catch (Exception ex) { FaultException fault = new FaultException("ERROR: " + ex.Message, new FaultCode("GENERAL")); throw fault; } }
/// <summary> /// Permite insertar un teléfono que no exista en la base de datos. Como el teléfono está relacionado obligatoriamente con una empresa o un contacto uno de los dos parámetros será null. /// </summary> /// <param name="t">Teléfono a insertar.</param> /// <param name="empData">Empresa a la que pertenece el teléfono a insertar.</param> /// <param name="conData">Contacto al que pertenece el teléfono a insertar.</param> /// <returns>True si se ha insertado.</returns> public int AddTelefono(TelefonoData t, EmpresaData empData, ContactoData conData) { if (t == null) return -1; if (empData == null && conData == null) return -1; if (empData != null && conData != null) return -1; try { int id; using (GestionEmpresasEntities bd = new GestionEmpresasEntities()) { Telefono telefono = new Telefono() { idTelefono = t.idTelefono, numero = t.numero, }; if (empData != null) { var datos = from empresas in bd.Empresa where empresas.idEmpresa == empData.EmpresaID select empresas; telefono.Empresa.Add(datos.First()); } else { var datos = from contactos in bd.Contacto where contactos.idContacto == conData.idContacto select contactos; telefono.Contacto.Add(datos.First()); } bd.Telefono.Add(telefono); bd.SaveChanges(); return telefono.idTelefono; } } catch (SqlException ex) { FaultException fault = new FaultException("ERROR SQL: " + ex.Message, new FaultCode("SQL")); throw fault; } catch (Exception ex) { FaultException fault = new FaultException("ERROR: " + ex.Message, new FaultCode("GENERAL")); throw fault; } }
/// <summary> /// Método que devuelve un contacto segun su nif. /// </summary> /// <param name="nif"></param> /// <returns></returns> public ContactoData getContactoNif(string nif) { try { using (GestionEmpresasEntities db = new GestionEmpresasEntities()) { var resulta = from contacto in db.Contacto where contacto.nif == nif select contacto; if (resulta.ToList().Count == 0) return null; foreach (Contacto em in resulta) { ContactoData cntData = new ContactoData() { idEmpresa = Convert.ToInt32(em.idEmpresa), idContacto = em.idContacto, nif = em.nif, nombre = em.nombre }; return cntData; } return null; } } catch (SqlException ex) { FaultException fault = new FaultException("EError SQL" + ex.Message, new FaultCode("SQL")); throw fault; } catch (Exception ex) { throw new FaultException(ex.Message, new FaultCode("")); } }
/********************************************************************/ /*******************************LUISMI*******************************/ /********************************************************************/ /*************************************************************** ****Métodos tabla Email. *AddEmail -- Añadir , *getAllEmail -- Devuelve todos los registros *getEmail -- Devuelve un registro concreto de la tabla Email *deleteEmail -- Elimina un registro de la tabla según su identificador *editEmail -- Modificacion de un registro concreto ***************************************************************/ /// <summary> /// /// Permite insertar un email que no exista en la base de datos. Como el Email está relacionado obligatoriamente con una empresa o un contacto uno de los dos parámetros será null. /// </summary> /// <param name="correo"></param> /// <param name="empData"></param> /// <param name="conData"></param> /// <returns></returns> public int addEmail(string correo, EmpresaData empData, ContactoData conData) { int indice = -1; if (correo == "" || correo == null || empData == null && conData == null) return -1; try { Email p = new Email(); p.correo = correo; using (GestionEmpresasEntities db = new GestionEmpresasEntities()) { if (empData != null) { var datos = from empresas in db.Empresa where empresas.idEmpresa == empData.EmpresaID select empresas; p.Empresa.Add(datos.First()); } else { var datos = from contactos in db.Contacto where contactos.idContacto == conData.idContacto select contactos; p.Contacto.Add(datos.First()); } db.Email.Add(p); db.SaveChanges(); indice = p.idEmail; return indice; } } catch (SqlException ex) { FaultException fault = new FaultException("EError SQL" + ex.Message, new FaultCode("SQL")); throw fault; } catch (Exception ex) { throw new FaultException(ex.Message, new FaultCode("ERROR SERVICIO LISTADO DE EMAILS")); } }
/************************FIN Empresa ****************************************/ /************************Contactos***********************************/ public List<ContactoData> filtrosContacto(string nif, string nombre, int idEmpresa) { List<ContactoData> datos = new List<ContactoData>(); try { using (GestionEmpresasEntities db = new GestionEmpresasEntities()) { //nif if (nif != null && nombre == null) { var resulta = from contacto in db.Contacto where contacto.nif == nif && contacto.Empresa.idEmpresa == idEmpresa select contacto; foreach (Contacto em in resulta) { ContactoData cntData = new ContactoData() { idEmpresa = Convert.ToInt32(em.idEmpresa), idContacto = em.idContacto, nif = em.nif, nombre = em.nombre }; datos.Add(cntData); } return datos; } //email if (nif == null && nombre != null) { var resulta = from contacto in db.Contacto where contacto.nombre.Contains(nombre) && contacto.Empresa.idEmpresa == idEmpresa select contacto; foreach (Contacto em in resulta) { ContactoData cntData = new ContactoData() { idEmpresa = Convert.ToInt32(em.idEmpresa), idContacto = em.idContacto, nif = em.nif, nombre = em.nombre }; datos.Add(cntData); } return datos; } //email y nombre if (nif != null && nombre != null) { var resulta = from contacto in db.Contacto where contacto.nombre.Contains(nombre) && contacto.nif == nif && contacto.Empresa.idEmpresa == idEmpresa select contacto; foreach (Contacto em in resulta) { ContactoData cntData = new ContactoData() { idEmpresa = Convert.ToInt32(em.idEmpresa), idContacto = em.idContacto, nif = em.nif, nombre = em.nombre }; datos.Add(cntData); } return datos; } return datos; } } catch (SqlException ex) { FaultException fault = new FaultException("EError SQL" + ex.Message, new FaultCode("SQL")); throw fault; } catch (Exception ex) { throw new FaultException(ex.Message, new FaultCode("")); } }
/*************************************************************** *******************************FIN EMAIL-CONTACTO******************** ***************************************************************/ /********************************************************************/ /*******************************FIN LUISMI***************************/ /********************************************************************/ /********************************************************************/ /*******************************JORGE********************************/ /********************************************************************/ /*************************************************************** **************************** Direccion ************************ ***************************************************************/ /// <summary> /// Metodo que añade un objeto street de tipo DireccionData a la bd /// </summary> /// <param name="street"></param> /// <returns></returns> public int AddDireccion(DireccionData t, EmpresaData empData, ContactoData conData) { if (t == null) return -1; if (empData == null && conData == null) return -1; if (empData != null && conData != null) return -1; try { using (GestionEmpresasEntities bd = new GestionEmpresasEntities()) { Direccion nueva = new Direccion(); nueva.idDireccion = t.idDireccion; nueva.domicilio = t.domicilio; nueva.poblacion = t.poblacion; nueva.provincia = t.provincia; nueva.codPostal = t.codPostal; if (empData != null) { var datos = from empresas in bd.Empresa where empresas.idEmpresa == empData.EmpresaID select empresas; nueva.Empresa.Add(datos.First()); } else { var datos = from contactos in bd.Contacto where contactos.idContacto == conData.idContacto select contactos; nueva.Contacto.Add(datos.First()); } bd.Direccion.Add(nueva); bd.SaveChanges(); return nueva.idDireccion; } } catch (SqlException ex) { FaultException fault = new FaultException("Error SQL: " + ex.Message, new FaultCode("SQL")); throw fault; } catch (Exception ex) { FaultException fault = new FaultException("Error: " + ex.Message, new FaultCode("General")); throw fault; } }