public ActionResult AgregarEmpresas()
        {
            BDPortafolioUcrContext db = new BDPortafolioUcrContext();

            Models.AgregarEmpresas datos = new Models.AgregarEmpresas();

            //tbEmpresas datos0 = new tbEmpresas();
            //tbDirecciones datos1 = new tbDirecciones();
            //tbTelefonos datos2 = new tbTelefonos();
            //tbCorreos datos3 = new tbCorreos();

            var maximo          = ((from codigo in db.tbEmpresas select(int?) codigo.idEmpresa).Max()) + 1;
            var maximoDireccion = ((from codigo in db.tbDirecciones select(int?) codigo.idDireccion).Max()) + 1;
            var maximoTelefono  = ((from codigo in db.tbTelefonos select(int?) codigo.idTelefono).Max()) + 1;
            var maximoCorreo    = ((from codigo in db.tbCorreos select(int?) codigo.idCorreo).Max()) + 1;

            if ((maximo == 0) && (maximoDireccion == 0) && (maximoTelefono == 0) && (maximoCorreo == 0))
            {
                maximo          = 1;
                datos.idEmpresa = Convert.ToInt32(1);

                maximoDireccion   = 1;
                datos.idDireccion = Convert.ToInt32(1);

                maximoTelefono   = 1;
                datos.idTelefono = Convert.ToInt32(1);

                maximoCorreo   = 1;
                datos.idCorreo = Convert.ToInt32(1);
                return(View());
            }
            else
            {
                datos.idEmpresa   = Convert.ToInt32(maximo);
                datos.idDireccion = Convert.ToInt32(maximoDireccion);
                datos.idTelefono  = Convert.ToInt32(maximoTelefono);
                datos.idCorreo    = Convert.ToInt32(maximoCorreo);
                return(View(datos));
            }
        }
        public ActionResult AgregarEmpresas(Models.AgregarEmpresas empresa)
        {
            if (ModelState.IsValid)
            {
                using (var db = new BDPortafolioUcrContext())
                {
                    var empresas    = db.tbEmpresas.Create();
                    var direcciones = db.tbDirecciones.Create();
                    var telefonos   = db.tbTelefonos.Create();
                    var correos     = db.tbCorreos.Create();

                    byte[] data = new byte[empresa.logo.ContentLength];
                    empresa.logo.InputStream.Read(data, 0, empresa.logo.ContentLength);

                    //****************************** Datos de la Empresa    *****************************************************

                    int cod = Convert.ToInt32(empresa.idEmpresa);
                    empresas.idEmpresa       = cod;
                    empresas.nombre          = empresa.nombre;
                    empresas.descripcionGene = empresa.descripcionGene;
                    empresas.foto            = data;

                    //int codD = Convert.ToInt32(empresa.idDireccion);
                    //direcciones.idDireccion = codD;
                    //direcciones.tipoPersona = empresa.tipoPersona;


                    /////////////////////////////////////////// Infromacion de la direccion ///////////////////////////////
                    int idD = Convert.ToInt32(empresa.idDireccion);
                    direcciones.idDireccion = idD;
                    direcciones.idPersona   = cod;
                    direcciones.tipoPersona = empresa.tipoPersona;
                    direcciones.direccion   = empresa.direccion;
                    direcciones.provincia   = empresa.provincia;
                    direcciones.canton      = empresa.canton;
                    direcciones.distrito    = empresa.distrito;

                    ////////////////////////// Infromacion de Telefono ///////////////////////////////
                    int codT = Convert.ToInt32(empresa.idTelefono);
                    telefonos.idTelefono = codT;
                    telefonos.telefono   = empresa.telefono;

                    // int idT = Convert.ToInt32(empresa.idPersona);
                    telefonos.idPersona = cod;
                    telefonos.tipoPers  = empresa.tipoPersona;

                    //////////////////////////// Infromacion de Correo ///////////////////////////////

                    int codC = Convert.ToInt32(empresa.idCorreo);
                    correos.idCorreo = codC;

                    //int idP = Convert.ToInt32(empresa.idPersona);
                    correos.idPersona   = cod;
                    correos.tipoPersona = empresa.tipoPersona;
                    correos.correo      = empresa.correo;

                    //************************* agrega la informacion a las tablas***************************************
                    db.tbEmpresas.Add(empresas);
                    // db.tbDirecciones.Add(direcciones); se comento por que da problemas al insertar por la llaves foraneas
                    //  db.tbTelefonos.Add(telefonos);
                    //   db.tbCorreos.Add(correos);

                    db.SaveChanges();

                    return(RedirectToAction("Index", "Home"));
                } //fin del using
            }     //fin del if valid

            else
            {
                ModelState.AddModelError("", "El registro fue incorrecto");
            }

            return(View());
        }//Fin del Metodo