private async Task EnviarNotificacion(string clavepersona, DerechosAutor derechosautor) { try { DateTime hoy = DateTime.Now; Correo correo = new Correo() { Modulo = "Capital Humano", ClavePersona = clavepersona, TipoCorreo = "1", Seccion = "Derechos de Autor", coautores = derechosautor.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 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 EnviarNotificacion(string clavepersona) { try { DateTime hoy = DateTime.Now; Correo correo = new Correo() { Modulo = "Capital Humano", ClavePersona = clavepersona, TipoCorreo = "1", Seccion = "Propiedad Industrial" }; getCorreoConfig conf = new getCorreoConfig(); SendCorreo send = new SendCorreo(); var result = await send.Send(correo, conf); if (!result) { throw new Exception("No se pudo enviar el correo!"); } } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task <Object> EnviaNotificaciones(Correo correo) { try { string correosMiembros = ""; string mensaje = ""; var entities = await _db.DbSetMiembros .Where(e => e.idCP == correo.id) .Include(e => e.RolesCP) .AsNoTracking() .ToListAsync(); AgendaCPRepository agendaCP = new AgendaCPRepository(); PersonasRepository personas = new PersonasRepository(); foreach (var item in entities) { var datosPersona = await personas.GetByClave(item.idPersonas); correosMiembros = correosMiembros + datosPersona.Correo + ","; } getCorreoConfig conf = new getCorreoConfig(); SendCorreo send = new SendCorreo(); if (await send.SendMails(correo, correosMiembros, conf)) { mensaje = "enviado"; Agenda ag = new Agenda(); ag = correo.agenda; ag.NotificacionEnviada = true; await agendaCP.Update(ag); } else { mensaje = "falla"; } return(mensaje); } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task <IHttpActionResult> SendNotificacion(Correo correo) { try { MDC.Set("extraData", "Inicio de envío de correo:" + new JavaScriptSerializer().Serialize(correo)); log.Info(new MDCSet(this.ControllerContext.RouteData)); getCorreoConfig conf = new getCorreoConfig(); SendCorreo send = new SendCorreo(); var result = await send.Send(correo, conf); if (!result) { MDC.Set("extraData", "No se manda correo:" + new JavaScriptSerializer().Serialize(correo)); log.Warn(new MDCSet(this.ControllerContext.RouteData)); } return(Ok(result)); } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); return(InternalServerError(e)); } }
public async Task <IHttpActionResult> NotificationStart() { try { log.Info(new MDCSet(this.ControllerContext.RouteData)); var NuevosOcs = await _entityRepo.GetAllNewsWithOCs(); //.Where(x=>x.nuevo==true) var listOcs = new List <NuevoOC>(NuevosOcs); for (int i = 0; i < 1; i++) { if (NuevosOcs == null || NuevosOcs.Count() == 0) { break; } OCSuscripcionesRepository susc = new OCSuscripcionesRepository(); var oCSuscripciones = await susc.GetAllEmpleadosANDsuscritoWithOc(); if (oCSuscripciones == null || oCSuscripciones.Count() == 0) { break; } HashSet <String> clavesEmpleado = new HashSet <string>( oCSuscripciones.Select(x => x.ClaveEmpleado)); var personas = await susc.PersonasGetAllCollectionMAX(clavesEmpleado); await _entityRepo.UpdateSetFalseInNuevo(); List <PersonaSuscripciones> lista = new List <PersonaSuscripciones>(); getCorreoConfig conf = new getCorreoConfig(); SendCorreo send = new SendCorreo(); Correo correo = new Correo(); List <OCSuscripciones> OCSuscripcion = new List <OCSuscripciones>(); if (NuevosOcs == null || listOcs == null || listOcs.Count < 1 || NuevosOcs.Count() == 0) { break; } try { log.Info(new MDCSet(this.ControllerContext.RouteData)); string servidorWeb = ConfigurationManager.AppSettings["servidorWeb"]; List <OCSuscripciones> oCSuscripcionesList = new List <OCSuscripciones>(oCSuscripciones); foreach (var p in personas) { var porEmpleado = oCSuscripcionesList.FindAll(x => x.ClaveEmpleado == p.ClavePersona); if (porEmpleado != null) { OCSuscripcion = new List <OCSuscripciones>(porEmpleado); var email = getCorreo(OCSuscripcion, listOcs, servidorWeb); if (email.goSend) { await send.Send(p, getCorreo(OCSuscripcion, listOcs, servidorWeb), conf); } } //lista.Add(new PersonaSuscripciones(p, OCSuscripcion)); } } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); } } return(Ok("pendiente")); } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); return(InternalServerError(e)); } }
public async Task <IHttpActionResult> PublicarITF(AprobacionRechazoData data) { //id de ITF try { log.Info(new MDCSet(this.ControllerContext.RouteData)); if (String.IsNullOrEmpty(data.IdElemento)) { throw new Exception("Identificador de ITF nulo o vacio"); } var accion = "rechazado"; var justificacionOcomentarios = ""; try { log.Info(new MDCSet(this.ControllerContext.RouteData)); if (data.Aprobacion == true) { if (String.IsNullOrEmpty(data.ClasificacionSignatura) || String.IsNullOrEmpty(data.NumInventario) || String.IsNullOrEmpty(data.NumInforme)) { throw new Exception("No se proporcionaron todos los elementos del formulario"); } var update = await dbITF.updateClasificacionSignatura(data.IdElemento, data.ClasificacionSignatura, data.NumInforme, data.NumInventario); if (!update) { throw new Exception("no fue posible agregar ClasificacionSignatura"); } } dbITF = new InformeTFRepository(); var result = await dbITF.updateEstadoFlujo(data.IdElemento, data.Aprobacion?EstadoITFFlujoIds.Publicado : EstadoITFFlujoIds.EnEdicion);//el Admin autoriza y cambia a 2: autorizado/aprobado if (data.Aprobacion == true) { accion = "aprobado"; } else { justificacionOcomentarios = "<br/>Justificación: " + data.JustificacionOcomentarios; } //una vez aprobado... var solicitud = await dbITF.GetSolicitudRevisionITF(data.IdElemento, EstadoSolicitudIds.Pendiente); solicitud.EstadoSolicitudId = data.Aprobacion ? EstadoSolicitudIds.Aprobado : EstadoSolicitudIds.Denegada; solicitud.FechaAtencion = DateTime.Now; result = await dbITF.UpdateSolicitudRevisionITF(solicitud); //mandar correo try { log.Info(new MDCSet(this.ControllerContext.RouteData)); var itf = await dbITF.GetIncludeProject(data.IdElemento); var interesados = await dbITF.getJefeAndResponsableUnidad_ByPRoyecto(itf.Proyecto); Correo correo = new Correo(); correo.Modulo = "Memoria Tecnológica"; correo.Empleado = SimpleSessionPersister.PersonaId; correo.Seccion = "ITF"; correo.TipoCorreo = "AprobacionRechazoEnPublicacion"; correo.Descripcion1 = String.Concat( "Se le notifica que el Informe Técnico Final del proyecto <b>", itf.Proyecto.ProyectoId, " -- ", itf.Proyecto.Nombre, "</b> fué <b>", accion, "</b> por el administrador de MT", justificacionOcomentarios ); getCorreoConfig conf = new getCorreoConfig(); SendCorreo send = new SendCorreo(); var enviaCorreo = await send.Send(interesados.ToList(), correo, conf); } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); //dbITF = null; //dbITF = new InformeTFRepository(); } } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); //dbITF = null; //dbITF = new InformeTFRepository(); } return(Ok()); } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); return(InternalServerError(e)); } }
public async Task <IHttpActionResult> enviarARevision(String id) { //id de ITF try { log.Info(new MDCSet(this.ControllerContext.RouteData)); if (String.IsNullOrEmpty(id)) { throw new Exception("Identificador de ITF nulo o vacio"); } var itf = await dbITF.GetIncludeProject(id); await dbITF.updateEstadoFlujo(itf.InformeTecnicoFinalId, 1);//--> Por autorizar var revisor = await dbITF.getPersonaResponsableByProyecto(itf.Proyecto); Correo correo = new Correo(); correo.Modulo = "Memoria Tecnológica"; correo.Empleado = SimpleSessionPersister.PersonaId; correo.Seccion = "ITF"; correo.TipoCorreo = "solicitudDeRevisionITF"; correo.Descripcion1 = String.Concat( " se ha generado una solicitud de revisión del Informe Técnico Final del proyecto <b>", itf.Proyecto.ProyectoId, " -- ", itf.Proyecto.Nombre, "</b>" ); try { log.Info(new MDCSet(this.ControllerContext.RouteData)); getCorreoConfig conf = new getCorreoConfig(); SendCorreo send = new SendCorreo(); var result = await send.Send(revisor, correo, conf); } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); dbITF = null; dbITF = new InformeTFRepository(); } try { log.Info(new MDCSet(this.ControllerContext.RouteData)); SolicitudRevisionITF solITF = new SolicitudRevisionITF(); solITF.InformeTecnicoFinalId = itf.InformeTecnicoFinalId; solITF.ClavePersonaSolicitante = SimpleSessionPersister.PersonaId; DateTime localDate = DateTime.Now; //ConfigAPI.cultureName solITF.FechaSolicitud = localDate; solITF.EstadoSolicitudId = EstadoSolicitudIds.Pendiente; solITF.ClaveUnidad = itf.Proyecto.UnidadOrganizacionalId; await dbITF.CreateSolicitudRevisionITF(solITF); //SolicitudRevisionITF } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); } return(Ok()); } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); return(InternalServerError(e)); } }