Exemplo n.º 1
0
        public void etiquetar()
        {
            List <DO_SolicitudEtiquetado> solicitudes = DataManagerControlDocumentos.GetSolicitudEtiquetar(0);

            Console.WriteLine("Hay " + solicitudes.Count + " Solicitudes pendientes para etiquetar.");

            foreach (var solicitud in solicitudes)
            {
                Console.Beep(5000, 1000);

                List <Archivo> archivos = DataManagerControlDocumentos.GetArchivo(solicitud.IdVersion);
                BaseFont       bfTimes  = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, false);

                DO_ClassificationLevel classificationLevel = DataManagerControlDocumentos.GetClassificationLevel(solicitud.IdClasificationLevel);

                foreach (var archivo in archivos)
                {
                    int noCopias = DataManagerControlDocumentos.GetCopias(solicitud.IdVersion);

                    DO_Respuesta respuesta         = setCLJES(archivo.archivo, bfTimes, classificationLevel.ClassificationLevel, noCopias);
                    byte[]       archivoEtiquetado = respuesta.Archivo;

                    if (respuesta.idRespuesta == 1)
                    {
                        File.WriteAllBytes(archivo.ruta, archivoEtiquetado);

                        DataManagerControlDocumentos.UpdateVersion(solicitud.IdVersion, solicitud.IdClasificationLevel, solicitud.IdUsuario);

                        DataManagerControlDocumentos.UpdateSolicitudEtiquetar(solicitud.IdSolicitud, 1);

                        DataManagerControlDocumentos.UpdateNoCopias(solicitud.IdVersion, 0);

                        Documento objDocumento = DataManagerControlDocumentos.GetDocumento(solicitud.IdVersion);

                        Version version = DataManagerControlDocumentos.GetVersion(solicitud.IdVersion);
                        String  title   = "Control de documentos - Etiquetado de documento : " + objDocumento.nombre;
                        string  correoUsuarioElaboro = DataManager.GetUsuario(solicitud.IdUsuario).Correo;

                        ServiceEmail SO_Email = new ServiceEmail();

                        string[] correos = new string[2];
                        correos[0] = correoUsuarioElaboro;
                        correos[1] = "*****@*****.**";
                        string body;
                        body  = "<HTML>";
                        body += "<head>";
                        body += "<meta http-equiv=\"Content - Type\" content=\"text / html; charset = utf - 8\"/>";
                        body += "</head>";
                        body += "<body text=\"white\">";
                        body += "<p><font font=\"verdana\" size=\"3\" color=\"black\">" + definirSaludo() + "</font> </p>";
                        body += "<ul>";
                        body += "<li><font font=\"verdana\" size=\"3\" color=\"black\">Para notificar que la JES con el número <b> " + objDocumento.nombre + "</b> versión <b> " + version.no_version + ".0" + " </b> fué etiquetada con la clasificación de seguridad: <b>" + classificationLevel.ClassificationLevel + " </b></font> </li>";
                        body += "<li><font font=\"verdana\" size=\"3\" color=\"black\">Adicionalmente informo que el documento a partir de este momento pasa a su nombre y queda actualizado en sistema.</font></li>";
                        body += "<br/>";
                        body += "</ul>";
                        body += "<p><font font=\"verdana\" size=\"3\" color=\"black\">Cualquier duda quedo a sus órdenes</font> </p>";
                        body += "<br/>";
                        body += "<br/>";
                        body += "<p><font font=\"default Sans Serif\" size=\"3\" color=\"black\">Saludos / Kind regards</font> </p>";
                        body += "</body>";
                        body += "</HTML>";

                        //Ejecutamos el método para notificar por correo
                        bool respuestaCorreo = SO_Email.SendEmailLotusCustom(correos, title, body, "CONTROL_DOCUMENTOS_ETIQUETADO", 0);
                        if (respuestaCorreo)
                        {
                            Console.WriteLine("El correo se envió perron!!");
                        }
                        else
                        {
                            Console.WriteLine("Hubo un error al enviar el correo");
                        }
                        //bool respuesta = SO_Email.SendEmailOutlook(correos, title, body, new List<string>());


                        Console.WriteLine("Se etiqueto la versión " + solicitud.IdVersion);
                    }
                    else
                    {
                        //TODO: No se pudo etiquetar tu documento.
                        Console.WriteLine("No se pudo etiquetar el documento " + solicitud.IdVersion);

                        DataManagerControlDocumentos.UpdateSolicitudEtiquetar(solicitud.IdSolicitud, 1);

                        string correoUsuarioElaboro = DataManager.GetUsuario(solicitud.IdUsuario).Correo;

                        Documento objDocumento = DataManagerControlDocumentos.GetDocumento(solicitud.IdVersion);
                        Version   version      = DataManagerControlDocumentos.GetVersion(solicitud.IdVersion);

                        ServiceEmail SO_Email = new ServiceEmail();

                        string[] correos = new string[2];
                        correos[0] = correoUsuarioElaboro;
                        correos[1] = "*****@*****.**";
                        string body;
                        body  = "<HTML>";
                        body += "<head>";
                        body += "<meta http-equiv=\"Content - Type\" content=\"text / html; charset = utf - 8\"/>";
                        body += "</head>";
                        body += "<body text=\"white\">";
                        body += "<p><font font=\"verdana\" size=\"3\" color=\"black\">" + definirSaludo() + "</font> </p>";
                        body += "<ul>";
                        body += "<li><font font=\"verdana\" size=\"3\" color=\"black\">Para notificar que la JES con el número <b> " + objDocumento.nombre + "</b> versión <b> " + version.no_version + ".0" + " </b>  <b>NO</b> fué etiquetada con la clasificación de seguridad: <b>" + classificationLevel.ClassificationLevel + " </b></font> </li>";
                        body += "<li><font font=\"verdana\" size=\"3\" color=\"black\">Para mas información favor de contactar al administrador de Control de documentos</font></li>";
                        body += "<br/>";
                        body += "</ul>";
                        body += "<p><font font=\"verdana\" size=\"3\" color=\"black\">Cualquier duda quedo a sus órdenes</font> </p>";
                        body += "<br/>";
                        body += "<br/>";
                        body += "<p><font font=\"default Sans Serif\" size=\"3\" color=\"black\">Saludos / Kind regards</font> </p>";
                        body += "</body>";
                        body += "</HTML>";
                        String title           = "Control de documentos - Solicitud no dispobible : " + objDocumento.nombre;
                        bool   respuestaCorreo = SO_Email.SendEmailLotusCustom(correos, title, body, "CONTROL_DOCUMENTOS_ETIQUETADO", 0);

                        if (respuestaCorreo)
                        {
                            Console.WriteLine("El correo se envió perron!!");
                        }
                        else
                        {
                            Console.WriteLine("Hubo un error al enviar el correo");
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        public static DO_Respuesta setCLJES(byte[] bytes, BaseFont baseFont, string classification, int noCopias)
        {
            int          angle     = 0;
            int          x         = 0;
            int          y         = 0;
            DO_Respuesta respuesta = new DO_Respuesta();

            using (var ms = new MemoryStream(10 * 1024))
            {
                using (var reader = new PdfReader(bytes))
                    using (var stamper = new PdfStamper(reader, ms))
                    {
                        var pages = reader.NumberOfPages;

                        for (int i = 1; i <= pages; i++)
                        {
                            var dc = stamper.GetOverContent(i);

                            Rectangle realPageSize = reader.GetPageSizeWithRotation(i);
                            Rectangle pagesize     = reader.GetPageSize(i);

                            float with   = pagesize.Width / 72;
                            float height = pagesize.Height / 72;

                            BaseColor baseColor = new BaseColor(30, 42, 99);

                            DateTime fecha_sello = DataManagerControlDocumentos.Get_DateTime();

                            string dia  = fecha_sello.Day.ToString().Length == 1 ? "0" + fecha_sello.Day : fecha_sello.Day.ToString();
                            string anio = fecha_sello.Year.ToString();
                            string mes  = fecha_sello.Month.ToString().Length == 1 ? "0" + fecha_sello.Month : fecha_sello.Month.ToString();

                            string fecha = dia + "/" + mes + "/" + anio;

                            string waterMarkText  = "MAHLE CONTROL DE DOCUMENTOS / DOCUMENTO LIBERADO ELECTRÓNICAMENTE Y TIENE VALIDEZ SIN FIRMA." + " DISPOSICIÓN: " + fecha;
                            string waterMarkText2 = "ÚNICAMENTE TIENE VALIDEZ EL DOCUMENTO DISPONIBLE EN INTRANET.";
                            string waterMarkText3 = "LAS COPIAS NO ESTÁN SUJETAS A NINGÚN SERVICIO DE ACTUALIZACIÓN.";
                            string waterMarkText4 = "DOCUMENTO SELLADO DEPUÉS DE SU LIBERACIÓN A SOLICITUD DEL DUEÑO DEL DOCUMENTO. ";


                            //Se verifica que la medida sea carta.
                            if (with == 17 && height == 11)
                            {
                                x = Convert.ToInt32(realPageSize.Right - 130);
                                y = Convert.ToInt32(realPageSize.Bottom + 20);

                                AddWaterMarkText2(dc, classification, baseFont, 12, angle, baseColor, x, y);
                                if (noCopias > 0)
                                {
                                    AddWaterMarkText2(dc, waterMarkText, baseFont, 6, 90, BaseColor.BLACK, Convert.ToInt32(realPageSize.Left + 6), Convert.ToInt32(realPageSize.Bottom + 245));
                                    AddWaterMarkText2(dc, waterMarkText2, baseFont, 6, 90, BaseColor.BLACK, Convert.ToInt32(realPageSize.Left + 12), Convert.ToInt32(realPageSize.Bottom + 160));
                                    AddWaterMarkText2(dc, waterMarkText3, baseFont, 6, 90, BaseColor.BLACK, Convert.ToInt32(realPageSize.Left + 18), Convert.ToInt32(realPageSize.Bottom + 160));
                                    AddWaterMarkText2(dc, waterMarkText4, baseFont, 6, 90, BaseColor.BLACK, Convert.ToInt32(realPageSize.Left + 24), Convert.ToInt32(realPageSize.Bottom + 160));
                                }

                                stamper.Close();
                                respuesta.Archivo     = ms.ToArray();
                                respuesta.idRespuesta = 1;
                                return(respuesta);
                            }
                            else if (with == 11 && height == 8.5)
                            {
                                x = Convert.ToInt32(realPageSize.Right - 130);
                                y = Convert.ToInt32(realPageSize.Bottom + 20);

                                AddWaterMarkText2(dc, classification, baseFont, 12, angle, baseColor, x, y);

                                if (noCopias > 0)
                                {
                                    AddWaterMarkText2(dc, waterMarkText, baseFont, 6, 90, BaseColor.BLACK, Convert.ToInt32(realPageSize.Left + 6), Convert.ToInt32(realPageSize.Bottom + 245));
                                    AddWaterMarkText2(dc, waterMarkText2, baseFont, 6, 90, BaseColor.BLACK, Convert.ToInt32(realPageSize.Left + 12), Convert.ToInt32(realPageSize.Bottom + 160));
                                    AddWaterMarkText2(dc, waterMarkText3, baseFont, 6, 90, BaseColor.BLACK, Convert.ToInt32(realPageSize.Left + 18), Convert.ToInt32(realPageSize.Bottom + 160));
                                    AddWaterMarkText2(dc, waterMarkText4, baseFont, 6, 90, BaseColor.BLACK, Convert.ToInt32(realPageSize.Left + 24), Convert.ToInt32(realPageSize.Bottom + 160));
                                }

                                stamper.Close();
                                respuesta.Archivo     = ms.ToArray();
                                respuesta.idRespuesta = 1;
                                return(respuesta);
                            }
                            else if (with == 55 && height == 42.5)
                            {
                                x = Convert.ToInt32(realPageSize.Right - 250);
                                y = Convert.ToInt32(realPageSize.Bottom + 90);

                                AddWaterMarkText2(dc, classification, baseFont, 30, angle, baseColor, x, y);

                                if (noCopias > 0)
                                {
                                    AddWaterMarkText2(dc, waterMarkText, baseFont, 30, 90, BaseColor.BLACK, Convert.ToInt32(realPageSize.Left + 30), Convert.ToInt32(realPageSize.Bottom + 1200));
                                    AddWaterMarkText2(dc, waterMarkText2, baseFont, 30, 90, BaseColor.BLACK, Convert.ToInt32(realPageSize.Left + 60), Convert.ToInt32(realPageSize.Bottom + 750));
                                    AddWaterMarkText2(dc, waterMarkText3, baseFont, 30, 90, BaseColor.BLACK, Convert.ToInt32(realPageSize.Left + 90), Convert.ToInt32(realPageSize.Bottom + 750));
                                    AddWaterMarkText2(dc, waterMarkText4, baseFont, 30, 90, BaseColor.BLACK, Convert.ToInt32(realPageSize.Left + 120), Convert.ToInt32(realPageSize.Bottom + 750));
                                }

                                stamper.Close();
                                respuesta.Archivo     = ms.ToArray();
                                respuesta.idRespuesta = 1;
                                return(respuesta);
                            }
                            else
                            {
                                stamper.Close();

                                respuesta.Archivo     = bytes;
                                respuesta.idRespuesta = 0;
                                return(respuesta);
                            }
                        }
                    }
            }

            respuesta.Archivo     = bytes;
            respuesta.idRespuesta = 0;
            return(respuesta);
        }