public ProductividadInnovadoraDomainModel GetProductividad(int _idProductividad)
        {
            ProductividadInnovadoraDomainModel productividadInnovadoraDM = new ProductividadInnovadoraDomainModel();

            Expression <Func <tblProductividadInnovadora, bool> > predicate = p => p.id == _idProductividad;
            tblProductividadInnovadora tblProductividad = produccionInnovadoraRepository.GetAll(predicate).FirstOrDefault <tblProductividadInnovadora>();

            productividadInnovadoraDM.id          = tblProductividad.id;
            productividadInnovadoraDM.idDocumento = tblProductividad.idDocumento.Value;
            productividadInnovadoraDM.idPais      = tblProductividad.idPais.Value;
            productividadInnovadoraDM.idPersonal  = tblProductividad.idPersonal.Value;
            productividadInnovadoraDM.strAutor    = tblProductividad.strAutor;
            productividadInnovadoraDM.strClasificacionInternacionalPatentes = tblProductividad.strClasificacionInternacionalPatentes;
            productividadInnovadoraDM.strDescripcion    = tblProductividad.strDescripcion;
            productividadInnovadoraDM.strNumeroRegistro = tblProductividad.strNumeroRegistro;
            productividadInnovadoraDM.strProposito      = tblProductividad.strProposito;
            productividadInnovadoraDM.strTipoProductividadInnovadora = tblProductividad.strTipoProductividadInnovadora;
            productividadInnovadoraDM.strTitulo        = tblProductividad.strTitulo;
            productividadInnovadoraDM.dteFechaRegistro = tblProductividad.dteFechaRegistro;
            productividadInnovadoraDM.documento        = new DocumentosDomainModel
            {
                StrUrl = tblProductividad.catDocumentos.strUrl
            };

            return(productividadInnovadoraDM);
        }
        public List <ProductividadInnovadoraDomainModel> GetProductividades(int _idPersonal)
        {
            List <ProductividadInnovadoraDomainModel> productividad = new List <ProductividadInnovadoraDomainModel>();

            Expression <Func <tblProductividadInnovadora, bool> > predicate = p => p.idPersonal == _idPersonal;
            List <tblProductividadInnovadora> tblProductividad = produccionInnovadoraRepository.GetAll(predicate).ToList();

            foreach (tblProductividadInnovadora item in tblProductividad)
            {
                ProductividadInnovadoraDomainModel productividadInnovadoraDM = new ProductividadInnovadoraDomainModel();

                productividadInnovadoraDM.id          = item.id;
                productividadInnovadoraDM.idDocumento = item.idDocumento.Value;
                productividadInnovadoraDM.idPais      = item.idPais.Value;
                productividadInnovadoraDM.idPersonal  = item.idPersonal.Value;
                productividadInnovadoraDM.strAutor    = item.strAutor;
                productividadInnovadoraDM.strClasificacionInternacionalPatentes = item.strClasificacionInternacionalPatentes;
                productividadInnovadoraDM.strDescripcion    = item.strDescripcion;
                productividadInnovadoraDM.strNumeroRegistro = item.strNumeroRegistro;
                productividadInnovadoraDM.strProposito      = item.strProposito;
                productividadInnovadoraDM.strTipoProductividadInnovadora = item.strTipoProductividadInnovadora;
                productividadInnovadoraDM.strTitulo        = item.strTitulo;
                productividadInnovadoraDM.dteFechaRegistro = item.dteFechaRegistro;
                productividadInnovadoraDM.documento        = new DocumentosDomainModel
                {
                    StrUrl = item.catDocumentos.strUrl
                };

                productividad.Add(productividadInnovadoraDM);
            }

            return(productividad);
        }
        public ActionResult Create(ProductividadInnovadoraVM productividadInnovadoraVM)
        {
            if (ModelState.IsValid)
            {
                ProductividadInnovadoraDomainModel productividadInnovadoraDM = new ProductividadInnovadoraDomainModel();

                string nombre     = SessionPersister.AccountSession.NombreCompleto;
                int    idPersonal = SessionPersister.AccountSession.IdPersonal;

                productividadInnovadoraVM.idPersonal = idPersonal;

                AutoMapper.Mapper.Map(productividadInnovadoraVM, productividadInnovadoraDM);

                object[] obj = CrearDocumentoPersonales(productividadInnovadoraVM);

                if (obj[0].Equals(true))
                {
                    productividadInnovadoraDM.documento = new DocumentosDomainModel {
                        StrUrl = obj[1].ToString()
                    };
                    productividadInnovadoraBusiness.AddUpdateProductividadInnovador(productividadInnovadoraDM);
                }
            }
            return(RedirectToAction("Create", "ProductividadInnovadora"));
        }
        public ActionResult UpdateProductividad(ProductividadInnovadoraVM productividadInnovadoraVM)
        {
            ProductividadInnovadoraDomainModel productividadInnovadoraDM = new ProductividadInnovadoraDomainModel();

            if (productividadInnovadoraVM.id > 0)
            {
                AutoMapper.Mapper.Map(productividadInnovadoraVM, productividadInnovadoraDM);
                productividadInnovadoraBusiness.AddUpdateProductividadInnovador(productividadInnovadoraDM);
            }
            return(RedirectToAction("Create", "ProductividadInnovadora"));
        }
        public ActionResult GetProductividadUpdate(int _idProductividad)
        {
            ProductividadInnovadoraVM          productividadInnovadoraVM = new ProductividadInnovadoraVM();
            ProductividadInnovadoraDomainModel productividadInnovadoraDM = new ProductividadInnovadoraDomainModel();

            productividadInnovadoraDM = productividadInnovadoraBusiness.GetProductividad(_idProductividad);

            if (productividadInnovadoraDM != null)
            {
                AutoMapper.Mapper.Map(productividadInnovadoraDM, productividadInnovadoraVM);
                return(PartialView("_Editar", productividadInnovadoraVM));
            }
            return(PartialView("_Editar"));
        }
        public bool AddUpdateProductividadInnovador(ProductividadInnovadoraDomainModel productividadInnovadoraDomainModel)
        {
            bool respuesta = false;

            if (productividadInnovadoraDomainModel.id > 0)
            {
                Expression <Func <tblProductividadInnovadora, bool> > predicate = p => p.id == productividadInnovadoraDomainModel.id;
                tblProductividadInnovadora tblProductividad = produccionInnovadoraRepository.GetAll(predicate).FirstOrDefault();
                if (tblProductividad != null)
                {
                    tblProductividad.strAutor          = productividadInnovadoraDomainModel.strAutor;
                    tblProductividad.strTitulo         = productividadInnovadoraDomainModel.strTitulo;
                    tblProductividad.strDescripcion    = productividadInnovadoraDomainModel.strDescripcion;
                    tblProductividad.strNumeroRegistro = productividadInnovadoraDomainModel.strNumeroRegistro;

                    produccionInnovadoraRepository.Update(tblProductividad);
                    respuesta = true;
                }
            }
            else
            {
                tblProductividadInnovadora tblProductividad = new tblProductividadInnovadora();
                catDocumentos catDocumentos = new catDocumentos();

                tblProductividad.idDocumento = productividadInnovadoraDomainModel.idDocumento;
                tblProductividad.idPais      = productividadInnovadoraDomainModel.idPais;
                tblProductividad.idPersonal  = productividadInnovadoraDomainModel.idPersonal;
                tblProductividad.strAutor    = productividadInnovadoraDomainModel.strAutor;
                tblProductividad.strClasificacionInternacionalPatentes = productividadInnovadoraDomainModel.strClasificacionInternacionalPatentes;
                tblProductividad.strDescripcion    = productividadInnovadoraDomainModel.strDescripcion;
                tblProductividad.strNumeroRegistro = productividadInnovadoraDomainModel.strNumeroRegistro;
                tblProductividad.strProposito      = productividadInnovadoraDomainModel.strProposito;
                tblProductividad.strTipoProductividadInnovadora = productividadInnovadoraDomainModel.strTipoProductividadInnovadora;
                tblProductividad.strTitulo        = productividadInnovadoraDomainModel.strTitulo;
                tblProductividad.dteFechaRegistro = productividadInnovadoraDomainModel.dteFechaRegistro;

                catDocumentos.tblProductividadInnovadora.Add(tblProductividad);

                catDocumentos.strUrl = productividadInnovadoraDomainModel.documento.StrUrl;

                documentosRepository.Insert(catDocumentos);
                respuesta = true;
            }

            return(respuesta);
        }
        public ActionResult DeleteProductividad(ProductividadInnovadoraVM productividadInnovadoraVM)
        {
            ProductividadInnovadoraDomainModel productividadInnovadoraDM = new ProductividadInnovadoraDomainModel();

            productividadInnovadoraDM = productividadInnovadoraBusiness.GetProductividad(productividadInnovadoraVM.id);

            if (productividadInnovadoraDM != null)
            {
                string url = Server.MapPath(Recursos.RecursosSistema.DOCUMENTO_USUARIO + SessionPersister.AccountSession.NombreCompleto + "/" + productividadInnovadoraDM.documento.StrUrl);

                if (FileManager.FileManager.DeleteFileFromServer(url))
                {
                    documentosBusiness.DeleteDocumento(productividadInnovadoraDM.idDocumento);
                }
            }

            return(RedirectToAction("Create", "ProductivadInnovadora"));
        }