private async Task Notifica(PropiedadIndustrial pin, string mailestado) { try { DateTime hoy = DateTime.Now; Correo correo = new Correo() { Modulo = "Capital Humano", ClavePersona = pin.ClavePersona, TipoCorreo = "2", Seccion = "Propiedad Industrial", Descripcion1 = "<b>Titulo:</b> " + pin.Titulo + "<br/>", Descripcion2 = "<b>Tipo de Propiedad:</b> " + pin.TipoPropiedadIndustrial.Descripcion + "<br/>", Descripcion3 = "<b>Estado:</b> " + pin.EstadoFlujo.Descripcion + "<br/>", Descripcion4 = "", Justificacion = pin.Justificacion, Estado = mailestado, coautores = pin.listacoautores }; getCorreoConfig conf = new getCorreoConfig(); SendCorreo send = new SendCorreo(); var result = await send.Coautores(correo, conf); if (!result) { throw new Exception("No se pudo enviar el correo!"); } } catch (Exception e) { throw new Exception(e.Message, e); } }
private async Task <Solicitud> GeneraSolicitud(PropiedadIndustrial pi) { try { DateTime hoy = DateTime.Now; Solicitud solicitud = new Solicitud() { ClavePersona = pi.ClavePersona, TipoInformacionId = 16, InformacionId = pi.PropiedadIndustrialId.ToString(), FechaSolicitud = hoy, EstadoFlujoId = pi.EstadoFlujoId, titulo = pi.Titulo }; SolicitudRepository sol = new SolicitudRepository(); var existe = await sol.existe(solicitud.TipoInformacionId, solicitud.InformacionId); if (existe == null) { solicitud = await sol.Create(solicitud); } else { existe.EstadoFlujoId = 2; solicitud = await sol.UpdateEstadoActualizacion(existe); } return(solicitud); } catch (Exception e) { throw new Exception(e.Message); } }
private async Task EnviarNotificacion(string clavepersona, PropiedadIndustrial p) { try { DateTime hoy = DateTime.Now; Correo correo = new Correo() { Modulo = "Capital Humano", ClavePersona = clavepersona, TipoCorreo = "1", Seccion = "Propiedad Industrial", coautores = p.listacoautores }; getCorreoConfig conf = new getCorreoConfig(); SendCorreo send = new SendCorreo(); var result = await send.Coautores(correo, conf); if (!result) { throw new Exception("No se pudo enviar el correo!"); } } catch (Exception e) { throw new Exception(e.Message, e); } }
private async Task Aprobar(PropiedadIndustrial pin) { try { Solicitud solicitud = new Solicitud() { TipoInformacionId = 16, InformacionId = pin.PropiedadIndustrialId.ToString() }; SolicitudRepository sol = new SolicitudRepository(); var existe = await sol.existe(solicitud.TipoInformacionId, solicitud.InformacionId); if (existe != null) { existe.EstadoFlujoId = 3; solicitud = await sol.UpdateEstadoActualizacion(existe); //registra bitacora await RegistraBitacora(existe.SolicitudId, existe.ClavePersona, "Aprobado: " + pin.Justificacion, existe.EstadoFlujoId, 1); } //enviar correo de rechazo await Notifica(pin, "Aprobada"); await CreaNuevoOC(pin); } catch (Exception e) { throw new Exception(e.Message, e.InnerException); } }
private async Task FlujoEstado2(PropiedadIndustrial _propiedadindustrial) { var nuevasolicitud = await this.GeneraSolicitud(_propiedadindustrial); if (nuevasolicitud != null && nuevasolicitud.SolicitudId > 0) { //crear registro bitacora var bitacora = RegistraBitacora(nuevasolicitud.SolicitudId, nuevasolicitud.ClavePersona, "Se envió la solicitud", 1, 0); } await EnviarNotificacion(nuevasolicitud.ClavePersona, _propiedadindustrial); }
public async Task CreateCH(PropiedadIndustrial propiedadindustrial) { try { propiedadindustrial.EsPropiedadInstituto = false; propiedadindustrial.EstadoFlujoId = 1; _pictx.PropiedadIndustrial.Add(propiedadindustrial); await _pictx.SaveChangesAsync(); } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task <IHttpActionResult> CreateCH(PropiedadIndustrial propiedadindustrial) { try { log.Info(new MDCSet(this.ControllerContext.RouteData)); await _piRepo.CreateCH(propiedadindustrial); return(Ok("Registro creado exitosamente!")); } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); return(InternalServerError(e)); } }
public async Task <IHttpActionResult> Update(PropiedadIndustrial propiedadindustrial) { try { log.Info(new MDCSet(this.ControllerContext.RouteData)); var respuesta = await _piRepo.Update(propiedadindustrial); return(Ok(respuesta)); } catch (DbUpdateConcurrencyException e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); return(StatusCode(HttpStatusCode.NoContent)); } }
private async Task CreaNuevoOC(PropiedadIndustrial _propiedadindustrial) { try { await new NuevoOCRepository().Create( new NuevoOC("CH", "PI", _propiedadindustrial.Titulo, "IndexCH.html#/detallespiexterno/" + _propiedadindustrial.PropiedadIndustrialId + "/", _propiedadindustrial.PropiedadIndustrialId + "" )); } catch (Exception e) { throw new Exception(e.Message, e.InnerException); } }
public async Task <IHttpActionResult> GetAllPropiedadInstitutoReporte(PropiedadIndustrial p) { try { log.Info(new MDCSet(this.ControllerContext.RouteData)); var derechosautor = await _piRepo.GetAllPropiedadInstitutoReporte(p); if (derechosautor == null) { return(NotFound()); } return(Ok(derechosautor)); } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); return(InternalServerError(e)); } }
public async Task <string> Update(PropiedadIndustrial propiedadindustrial) { try { string mensaje = "Registro actualizado exitosamente!"; var _propiedadindustrial = await _pictx.PropiedadIndustrial.FirstOrDefaultAsync(e => e.PropiedadIndustrialId == propiedadindustrial.PropiedadIndustrialId); if (_propiedadindustrial.AdjuntoId != null && _propiedadindustrial != null && (!String.IsNullOrEmpty(propiedadindustrial.accion) && propiedadindustrial.accion == "elimina")) { var id = _propiedadindustrial.AdjuntoId; _propiedadindustrial.AdjuntoId = null; await _pictx.SaveChangesAsync(); await new AdjuntoRepository().Delete(id); } if (propiedadindustrial.EsPropiedadInstituto) { propiedadindustrial.EstadoFlujoId = 3; } if (propiedadindustrial.Adjunto != null) { if (propiedadindustrial.Adjunto.AdjuntoId == 0) { Adjunto key = await new AdjuntoRepository().CreateAd(propiedadindustrial.Adjunto); propiedadindustrial.AdjuntoId = key.AdjuntoId; propiedadindustrial.Adjunto.AdjuntoId = key.AdjuntoId; } } var autores = await _pictx.AutoresPI.Where(e => e.PropiedadIndustrialId == propiedadindustrial.PropiedadIndustrialId).ToListAsync(); if (autores.Count > 0) { _pictx.AutoresPI.RemoveRange(autores); await _pictx.SaveChangesAsync(); } if (propiedadindustrial.Inventores.Count > 0) { foreach (var autor in propiedadindustrial.Inventores) { autor.PropiedadIndustrialId = propiedadindustrial.PropiedadIndustrialId; } _pictx.AutoresPI.AddRange(propiedadindustrial.Inventores); await _pictx.SaveChangesAsync(); } if (_propiedadindustrial != null) { _pictx.Entry(_propiedadindustrial).State = EntityState.Modified; if (propiedadindustrial.EstadoFlujoId == 3 && propiedadindustrial.EsPropiedadInstituto == false) { DateTime hoy = DateTime.Now; propiedadindustrial.FechaValidacion = hoy; } _pictx.Entry(_propiedadindustrial).CurrentValues.SetValues(propiedadindustrial); await _pictx.SaveChangesAsync(); } _propiedadindustrial = await _pictx.PropiedadIndustrial .Include(e => e.EstadoFlujo) .Include(e => e.TipoPropiedadIndustrial) .FirstOrDefaultAsync(e => e.PropiedadIndustrialId == propiedadindustrial.PropiedadIndustrialId); _propiedadindustrial.Justificacion = propiedadindustrial.Justificacion; if (_propiedadindustrial.EstadoFlujoId == 2) { if (!String.IsNullOrEmpty(propiedadindustrial.listacoautores)) { _propiedadindustrial.listacoautores = propiedadindustrial.listacoautores; } await FlujoEstado2(_propiedadindustrial); } if (propiedadindustrial.Rechazar) { if (!String.IsNullOrEmpty(propiedadindustrial.listacoautores)) { _propiedadindustrial.listacoautores = propiedadindustrial.listacoautores; } await Rechazar(_propiedadindustrial); mensaje = "Solicitud rechazada!"; } if (propiedadindustrial.Aprobar) { if (!String.IsNullOrEmpty(propiedadindustrial.listacoautores)) { _propiedadindustrial.listacoautores = propiedadindustrial.listacoautores; } await Aprobar(_propiedadindustrial); mensaje = "Solicitud aprobada!"; } return(mensaje); } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task <IEnumerable <Object> > GetAllPropiedadInstitutoReporte(PropiedadIndustrial parametros) { try { GEN_Context _gen = new GEN_Context(); var unidadesId = await(_pictx.DerechosAutor .Where(e => e.ClaveUnidad != "") .Select(e => e.ClaveUnidad)) .AsNoTracking().ToListAsync(); var unidades = await _gen.dbSetUnidadOrganizacional.AsNoTracking() .Where(x => unidadesId.Contains(x.ClaveUnidad) && //) x.FechaEfectiva == _gen.dbSetUnidadOrganizacional .Where(f => f.FechaEfectiva <= DateTime.Now && f.ClaveUnidad == x.ClaveUnidad) .Max(f => f.FechaEfectiva) ) .ToListAsync(); var propiedadindustrial = (from pi in _pictx.PropiedadIndustrial.AsNoTracking() .Include(e => e.EstadoDelProceso) .Include(e => e.TipoPropiedadIndustrial) .Include(e => e.EstadoDelProceso) .Include(e => e.Inventores) .Where(e => e.EsPropiedadInstituto == true) select pi); if (propiedadindustrial != null) { if (!String.IsNullOrEmpty(parametros.busquedaFecha)) //busqueda por fecha { propiedadindustrial = propiedadindustrial.Where(e => (DbFunctions.TruncateTime(e.FechaExpedicion) >= DbFunctions.TruncateTime(parametros.fechaInicioComparacion) && DbFunctions.TruncateTime(e.FechaExpedicion) <= DbFunctions.TruncateTime(parametros.fechaFinalComparacion)) || e.FechaExpedicion == null); } if (!String.IsNullOrEmpty(parametros.Titulo)) { var listaPI = await GetPILikeNombreLatin1(parametros.Titulo); propiedadindustrial = propiedadindustrial.Where(e => listaPI.Contains(e.PropiedadIndustrialId)); } if (!String.IsNullOrEmpty(parametros.NumeroProyecto)) { propiedadindustrial = propiedadindustrial.Where(e => e.NumeroProyecto.Contains(parametros.NumeroProyecto)); } if (!String.IsNullOrEmpty(parametros.nombrePersona)) { var listaPersonas = await GetAutoresByPILikeNombreLatin1(parametros.nombrePersona); List <int> ids = listaPersonas.Select(x => Convert.ToInt32(x)).ToList(); propiedadindustrial = propiedadindustrial.Where(e => listaPersonas.Contains(e.PropiedadIndustrialId)); } if (parametros.TipoPropiedadIndustrialId != 0) { propiedadindustrial = propiedadindustrial.Where(e => e.TipoPropiedadIndustrialId == parametros.TipoPropiedadIndustrialId); } if (!String.IsNullOrEmpty(parametros.ClaveUnidad)) { propiedadindustrial = propiedadindustrial.Where(e => e.ClaveUnidad == parametros.ClaveUnidad); } if (parametros.EstadoDelProcesoId != 0) { propiedadindustrial = propiedadindustrial.Where(e => e.EstadoDelProcesoId == parametros.EstadoDelProcesoId); } List <BusquedaParams> datos = propiedadindustrial.Select(x => new BusquedaParams { propiedadIndustrialId = x.PropiedadIndustrialId, ConsecutivoInterno = x.ConsecutivoInterno, Titulo = x.Titulo, NumeroProyecto = x.NumeroProyecto, inventores = x.Inventores, tipoPropiedadIndustrial = x.TipoPropiedadIndustrial.Descripcion, fechaExpedicion2 = x.FechaExpedicion, // unidadOrganizacional = x.UnidadOrganizacional.NombreUnidad, estadoDelProceso = x.EstadoDelProceso.Descripcion, expediente = x.Expediente, fechaPresentacion = x.FechaPresentacion, fechaVencimiento = x.FechaVencimiento, fechaProximoPago = x.FechaProximoPago, numeroTitulo = x.NumeroTitulo, fechaInicioTramite = x.FechaInicioTramite, licenciado = x.Licenciado, ClaveUnidad = x.ClaveUnidad, Observaciones = x.Observaciones }).ToList(); foreach (var prop in datos) { if (prop.ClaveUnidad != null) { prop.UnidadOrganizacional = (from unidad in unidades where unidad.ClaveUnidad == prop.ClaveUnidad select unidad).FirstOrDefault(); } if (prop.NumeroProyecto != null) { prop.Proyecto = await(from proyecto in _gen.dbSetProyectoGEN.AsNoTracking() where proyecto.ProyectoId == prop.NumeroProyecto select proyecto.Nombre) .FirstOrDefaultAsync(); } } return(datos); } return(null); } catch (Exception e) { throw new Exception(e.Message, e); } }