Example #1
0
        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);
            }
        }
Example #5
0
                                                    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)); }
                                                    }
Example #6
0
                                                     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&oacute;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));
            }
        }