public List <EstadiaEmpresaDomainModel> GetAllEstadiaEmpresaByIdPersonal(int _idPersonal)
        {
            List <EstadiaEmpresaDomainModel> estadiaEmpresas = new List <EstadiaEmpresaDomainModel>();

            Expression <Func <tblEstadiaEmpresa, bool> > predicate = p => p.idPersonal == _idPersonal;
            List <tblEstadiaEmpresa> tblEstadias = estadiaEmpresaRepository.GetAll(predicate).ToList();

            foreach (tblEstadiaEmpresa item in tblEstadias)
            {
                EstadiaEmpresaDomainModel estadiaEmpresaDM = new EstadiaEmpresaDomainModel();

                estadiaEmpresaDM.id                           = item.id;
                estadiaEmpresaDM.idDocumento                  = item.idDocumento.Value;
                estadiaEmpresaDM.idPersonal                   = item.idPersonal.Value;
                estadiaEmpresaDM.idProgramaEducativo          = item.idProgramaEducativo.Value;
                estadiaEmpresaDM.strEstadoEstadia             = item.strEstadoEstadia;
                estadiaEmpresaDM.strLogrosBeneficiosObtenidos = item.strLogrosBeneficiosObtenidos;
                estadiaEmpresaDM.strNombreEmpresaInstitucion  = item.strNombreEmpresaInstitucion;
                estadiaEmpresaDM.strObjetivo                  = item.strObjetivo;
                estadiaEmpresaDM.strPuntosCriticosResolver    = item.strPuntosCriticosResolver;
                estadiaEmpresaDM.strResumenProyecto           = item.strResumenProyecto;
                estadiaEmpresaDM.dteFechaInicio               = item.dteFechaInicio;
                estadiaEmpresaDM.dteFechaTermino              = item.dteFechaTermino;
                estadiaEmpresaDM.strNombreAlumno              = item.strNombreAlumno;
                estadiaEmpresaDM.documentos                   = new DocumentosDomainModel
                {
                    StrUrl = item.catDocumentos.strUrl
                };
                estadiaEmpresas.Add(estadiaEmpresaDM);
            }

            return(estadiaEmpresas);
        }
        public EstadiaEmpresaDomainModel GetEstadiaEmpresaById(int _idEstadia)
        {
            EstadiaEmpresaDomainModel estadiaEmpresaDM = new EstadiaEmpresaDomainModel();

            Expression <Func <tblEstadiaEmpresa, bool> > predicate = p => p.id == _idEstadia;
            tblEstadiaEmpresa tblEstadiaEmpresa = estadiaEmpresaRepository.GetAll(predicate).FirstOrDefault();

            estadiaEmpresaDM.id                           = tblEstadiaEmpresa.id;
            estadiaEmpresaDM.idDocumento                  = tblEstadiaEmpresa.idDocumento.Value;
            estadiaEmpresaDM.idPersonal                   = tblEstadiaEmpresa.idPersonal.Value;
            estadiaEmpresaDM.idProgramaEducativo          = tblEstadiaEmpresa.idProgramaEducativo.Value;
            estadiaEmpresaDM.strEstadoEstadia             = tblEstadiaEmpresa.strEstadoEstadia;
            estadiaEmpresaDM.strLogrosBeneficiosObtenidos = tblEstadiaEmpresa.strLogrosBeneficiosObtenidos;
            estadiaEmpresaDM.strNombreEmpresaInstitucion  = tblEstadiaEmpresa.strNombreEmpresaInstitucion;
            estadiaEmpresaDM.strObjetivo                  = tblEstadiaEmpresa.strObjetivo;
            estadiaEmpresaDM.strPuntosCriticosResolver    = tblEstadiaEmpresa.strPuntosCriticosResolver;
            estadiaEmpresaDM.strResumenProyecto           = tblEstadiaEmpresa.strResumenProyecto;
            estadiaEmpresaDM.dteFechaInicio               = tblEstadiaEmpresa.dteFechaInicio;
            estadiaEmpresaDM.dteFechaTermino              = tblEstadiaEmpresa.dteFechaTermino;
            estadiaEmpresaDM.strNombreAlumno              = tblEstadiaEmpresa.strNombreAlumno;
            estadiaEmpresaDM.documentos                   = new DocumentosDomainModel
            {
                StrUrl = tblEstadiaEmpresa.catDocumentos.strUrl
            };

            return(estadiaEmpresaDM);
        }
        public ActionResult UpdateEstadia(EstadiaEmpresaVM estadiaEmpresaVM)
        {
            EstadiaEmpresaDomainModel estadiaEmpresaDM = new EstadiaEmpresaDomainModel();

            if (estadiaEmpresaVM.id > 0)
            {
                AutoMapper.Mapper.Map(estadiaEmpresaVM, estadiaEmpresaDM);

                estadiaEmpresaBusiness.AddUpdateEstadiaEmpresa(estadiaEmpresaDM);
            }

            return(RedirectToAction("Create", "EstadiaEmpresa"));
        }
        public ActionResult GetEstadiaDelete(int _idEstadia)
        {
            EstadiaEmpresaDomainModel estadiaEmpresaDM = new EstadiaEmpresaDomainModel();
            EstadiaEmpresaVM          estadiaEmpresaVM = new EstadiaEmpresaVM();

            estadiaEmpresaDM = estadiaEmpresaBusiness.GetEstadiaEmpresaById(_idEstadia);

            if (estadiaEmpresaDM != null)
            {
                AutoMapper.Mapper.Map(estadiaEmpresaDM, estadiaEmpresaVM);
                return(PartialView("_Eliminar", estadiaEmpresaVM));
            }

            return(PartialView());
        }
        public ActionResult GetEstadiaUpdate(int _idEstadia)
        {
            EstadiaEmpresaDomainModel estadiaEmpresaDM = new EstadiaEmpresaDomainModel();
            EstadiaEmpresaVM          empresaVM        = new EstadiaEmpresaVM();

            estadiaEmpresaDM = estadiaEmpresaBusiness.GetEstadiaEmpresaById(_idEstadia);

            if (estadiaEmpresaDM != null)
            {
                ViewBag.strEstadoEstadia = new SelectList(list.FillEstadoEstadia());
                AutoMapper.Mapper.Map(estadiaEmpresaDM, empresaVM);
                return(PartialView("_Editar", empresaVM));
            }

            return(PartialView());
        }
        public bool AddUpdateEstadiaEmpresa(EstadiaEmpresaDomainModel estadiaEmpresaDM)
        {
            bool respuesta = false;

            if (estadiaEmpresaDM.id > 0)
            {
                Expression <Func <tblEstadiaEmpresa, bool> > predicate = p => p.id == estadiaEmpresaDM.id;
                tblEstadiaEmpresa tblEstadiaEmpresa = estadiaEmpresaRepository.GetAll(predicate).FirstOrDefault();

                if (tblEstadiaEmpresa != null)
                {
                    tblEstadiaEmpresa.strResumenProyecto           = estadiaEmpresaDM.strResumenProyecto;
                    tblEstadiaEmpresa.strObjetivo                  = estadiaEmpresaDM.strObjetivo;
                    tblEstadiaEmpresa.strNombreEmpresaInstitucion  = estadiaEmpresaDM.strNombreEmpresaInstitucion;
                    tblEstadiaEmpresa.strPuntosCriticosResolver    = estadiaEmpresaDM.strPuntosCriticosResolver;
                    tblEstadiaEmpresa.strLogrosBeneficiosObtenidos = estadiaEmpresaDM.strLogrosBeneficiosObtenidos;
                    tblEstadiaEmpresa.strNombreAlumno              = estadiaEmpresaDM.strNombreAlumno;
                    tblEstadiaEmpresa.strEstadoEstadia             = estadiaEmpresaDM.strEstadoEstadia;

                    estadiaEmpresaRepository.Update(tblEstadiaEmpresa);
                    respuesta = true;
                }
            }
            else
            {
                tblEstadiaEmpresa tblEstadiaEmpresa = new tblEstadiaEmpresa();
                catDocumentos     catDocumentos     = new catDocumentos();
                tblEstadiaEmpresa.idDocumento                  = estadiaEmpresaDM.idDocumento;
                tblEstadiaEmpresa.idPersonal                   = estadiaEmpresaDM.idPersonal;
                tblEstadiaEmpresa.idProgramaEducativo          = estadiaEmpresaDM.idProgramaEducativo;
                tblEstadiaEmpresa.strEstadoEstadia             = estadiaEmpresaDM.strEstadoEstadia;
                tblEstadiaEmpresa.strLogrosBeneficiosObtenidos = estadiaEmpresaDM.strLogrosBeneficiosObtenidos;
                tblEstadiaEmpresa.strNombreEmpresaInstitucion  = estadiaEmpresaDM.strNombreEmpresaInstitucion;
                tblEstadiaEmpresa.strObjetivo                  = estadiaEmpresaDM.strObjetivo;
                tblEstadiaEmpresa.strPuntosCriticosResolver    = estadiaEmpresaDM.strPuntosCriticosResolver;
                tblEstadiaEmpresa.strResumenProyecto           = estadiaEmpresaDM.strResumenProyecto;
                tblEstadiaEmpresa.dteFechaInicio               = estadiaEmpresaDM.dteFechaInicio;
                tblEstadiaEmpresa.dteFechaTermino              = estadiaEmpresaDM.dteFechaTermino;
                tblEstadiaEmpresa.strNombreAlumno              = estadiaEmpresaDM.strNombreAlumno;
                catDocumentos.tblEstadiaEmpresa.Add(tblEstadiaEmpresa);
                catDocumentos.strUrl = estadiaEmpresaDM.documentos.StrUrl;
                documentosRepository.Insert(catDocumentos);
                respuesta = true;
            }
            return(respuesta);
        }
        public ActionResult DeleteEstadia(EstadiaEmpresaVM estadiaEmpresaVM)
        {
            EstadiaEmpresaDomainModel estadiaEmpresaDM = new EstadiaEmpresaDomainModel();

            estadiaEmpresaDM = estadiaEmpresaBusiness.GetEstadiaEmpresaById(estadiaEmpresaVM.id);

            if (estadiaEmpresaDM != null)
            {
                string url = Server.MapPath(Recursos.RecursosSistema.DOCUMENTO_USUARIO + SessionPersister.AccountSession.NombreCompleto + "/" + estadiaEmpresaDM.documentos.StrUrl);
                if (FileManager.FileManager.DeleteFileFromServer(url))
                {
                    documentosBusiness.DeleteDocumento(estadiaEmpresaDM.idDocumento);
                }
            }

            return(RedirectToAction("Create", "EstadiaEmpresa"));
        }
        public ActionResult Create(EstadiaEmpresaVM estadiaEmpresaVM)
        {
            if (ModelState.IsValid)
            {
                EstadiaEmpresaDomainModel estadiaEmpresaDM = new EstadiaEmpresaDomainModel();

                int idPersonal = SessionPersister.AccountSession.IdPersonal;

                estadiaEmpresaVM.idPersonal = idPersonal;

                AutoMapper.Mapper.Map(estadiaEmpresaVM, estadiaEmpresaDM);

                object[] obj = CrearDocumentoPersonales(estadiaEmpresaVM);

                if (obj[0].Equals(true))
                {
                    estadiaEmpresaDM.documentos = new DocumentosDomainModel {
                        StrUrl = obj[1].ToString()
                    };
                    estadiaEmpresaBusiness.AddUpdateEstadiaEmpresa(estadiaEmpresaDM);
                }
            }
            return(RedirectToAction("Create", "EstadiaEmpresa"));
        }