public ActionResult Edit(int id)
        {
            IRepositorio<Empresa> myRepoEmpresa = new EmpresaRepositorio();
            Empresa empresa = myRepoEmpresa.GetById(id);

            IRepositorio<Telefono> repositorioTelefono = new TelefonoRepositorio();
            IList<Telefono> telefonos = repositorioTelefono.GetAll();
            IList<Telefono> telefonosBuscados = new List<Telefono>();
            foreach (var telefono in telefonos)
            {
                if (telefono.IdEmpresa == id)
                {
                    telefonosBuscados.Add(telefono);
                }
            }
            empresa.Telefonos = telefonosBuscados;

            IRepositorio<Contacto> repositorioContacto = new ContactoRepositorio();
            IList<Contacto> contactos = repositorioContacto.GetAll();
            IList<Contacto> contactosBuscados = new List<Contacto>();
            telefonosBuscados = new List<Telefono>();

            foreach (var contacto in contactos)
            {
                if (contacto.IdEmpresa == id)
                {
                    foreach (var telefono in telefonos)
                    {
                        if (telefono.IdContacto == contacto.IdContacto)
                        {
                            telefonosBuscados.Add(telefono);
                        }
                    }
                    contacto.ListaTelefonos = telefonosBuscados;
                    contactosBuscados.Add(contacto);
                }
            }
            empresa.Contacto = contactosBuscados;

            while (empresa.Contacto[0].ListaTelefonos.Count < 4)
            {
                empresa.Contacto[0].ListaTelefonos.Add(new Telefono());
            }
            return View(empresa);
        }
        public ActionResult Edit(int id)
        {
            IRepositorio<Patrocinante> repoPatrocinante = new PatrocinanteRepositorio();
            IList<Patrocinante> patrocinantesAux = new List<Patrocinante>();
            Patrocinante patrocinante = repoPatrocinante.GetById(id);

            IRepositorio<Telefono> repoTelefono = new TelefonoRepositorio();
            IList<Telefono> TodosTelefonos = repoTelefono.GetAll();
            IList<Telefono> telefonos = new List<Telefono>();

            IRepositorio<Contacto> repoContacto = new ContactoRepositorio();
            IList<Contacto> TodosContactos = repoContacto.GetAll();
            IList<Contacto> contactos = new List<Contacto>();

            IRepositorio<Imagene> repoImagen = new ImageneRepositorio();
            IList<Imagene> imagenes = repoImagen.GetAll();

            foreach (var contacto in TodosContactos)
            {
                if (contacto.IdPatrocinante == patrocinante.IdPatrocinante)
                {
                    foreach (var telefono in TodosTelefonos)
                    {
                        if (telefono.IdContacto == contacto.IdContacto)
                        {
                            telefonos.Add(telefono);
                        }
                    }
                    contacto.ListaTelefonos = telefonos;
                    contactos.Add(contacto);
                }
            }
            patrocinante.Contacto = contactos;
            foreach (var imagene in imagenes)
            {
                if (imagene.IdPatrocinante == patrocinante.IdPatrocinante)
                {
                    patrocinante.Imagene = imagene;
                }
            }
            while (patrocinante.Contacto[0].ListaTelefonos.Count < 4)
            {
                patrocinante.Contacto[0].ListaTelefonos.Add(new Telefono());
            }
            return View(patrocinante);
        }
        public ActionResult Index(String tipo, string patrocinante)
        {
            IRepositorio<Patrocinante> repoPatrocinante = new PatrocinanteRepositorio();
            IList<Patrocinante> patrocinantesAux = new List<Patrocinante>();
            IList<Patrocinante> patrocinantes = repoPatrocinante.GetAll();

            IRepositorio<Telefono> repoTelefono = new TelefonoRepositorio();
            IList<Telefono> TodosTelefonos = repoTelefono.GetAll();
            IList<Telefono> telefonos = new List<Telefono>();

            IRepositorio<Contacto> repoContacto = new ContactoRepositorio();
            IList<Contacto> TodosContactos = repoContacto.GetAll();
            IList<Contacto> contactos = new List<Contacto>();

            IRepositorio<Imagene> repoImagen = new ImageneRepositorio();
            IList<Imagene> imagenes = repoImagen.GetAll();

            foreach (var patrocinante1 in patrocinantes)
            {
                foreach (var contacto in TodosContactos)
                {
                    if (contacto.IdPatrocinante == patrocinante1.IdPatrocinante)
                    {
                        foreach (var telefono in TodosTelefonos)
                        {
                            if (telefono.IdContacto == contacto.IdContacto)
                            {
                                telefonos.Add(telefono);
                            }
                        }
                        contacto.ListaTelefonos = telefonos;
                        telefonos = new List<Telefono>();
                        contactos.Add(contacto);
                    }
                }
                patrocinante1.Contacto = contactos;
                contactos = new List<Contacto>();

                foreach (var imagene in imagenes)
                {
                    if (imagene.IdPatrocinante != null)
                        if (imagene.IdPatrocinante == patrocinante1.IdPatrocinante)
                        {
                            patrocinante1.Imagene = imagene;
                            if (tipo != null)
                            {
                                if (tipo == "S")
                                {
                                    if (imagene.Tipo == "S")
                                        patrocinantesAux.Add(patrocinante1);
                                }
                                else
                                {
                                    if (imagene.Tipo == "L")
                                        patrocinantesAux.Add(patrocinante1);
                                }
                            }
                        }
                }
            }
            if (tipo != null)
            {
                if (patrocinante != null)
                {
                    IList<Patrocinante> patrocinantesBuscados = new List<Patrocinante>();
                    foreach (var patrocinante1 in patrocinantesAux)
                    {
                        if (patrocinante1.Nombre == patrocinante)
                        {
                            patrocinantesBuscados.Add(patrocinante1);
                        }
                    }
                    return View(patrocinantesBuscados);
                }
                return View(patrocinantesAux);
            }

            if (patrocinante != null)
            {
                IList<Patrocinante> patrocinantesBuscados = new List<Patrocinante>();
                foreach (var patrocinante1 in patrocinantes)
                {
                    if (patrocinante1.Nombre == patrocinante)
                    {
                        patrocinantesBuscados.Add(patrocinante1);
                    }
                }
                return View(patrocinantesBuscados);
            }
            return View(patrocinantes);
        }
        public ActionResult Delete(int id)
        {
            IRepositorio<Patrocinante> repo = new PatrocinanteRepositorio();

            IRepositorio<Contacto> repoContacto = new ContactoRepositorio();
            IList<Contacto> contactos = repoContacto.GetAll();
            Contacto contactoBuscado = null;
            foreach (var contacto in contactos)
            {
                if (contacto.IdPatrocinante == id)
                {
                    contactoBuscado = contacto;
                    break;
                }
            }

            IRepositorio<Telefono> repoTelefono = new TelefonoRepositorio();
            IList<Telefono> telefonos = repoTelefono.GetAll();
            Patrocinante patrocinante = repo.GetById(id);
            foreach (var telefono in telefonos)
            {
                if (telefono.IdContacto == contactoBuscado.IdContacto)
                {
                    repoTelefono.Delete(telefono);
                    break;
                }
            }
            repo.Delete(patrocinante);
            return RedirectToAction("Index");
        }