Ejemplo n.º 1
0
        private TempFileDocumentInfo GetDocument(string source, string name, string archiveName)
        {
            TempFileDocumentInfo documentObject = new TempFileDocumentInfo(new FileInfo(source))
            {
                Caption = name, Name = name
            };

            documentObject.Attributes.Add("Filename", name);
            documentObject.Attributes.Add("Signature", "Registro Giornaliero di Protocollo");
            documentObject.Attributes.Add("ANumero", JournalPrint.ANumero.ToString(CultureInfo.InvariantCulture));
            documentObject.Attributes.Add("DaNumero", JournalPrint.DaNumero.ToString(CultureInfo.InvariantCulture));
            string dataAttribute = Date.ToString(CultureInfo.InvariantCulture);

            if (!string.IsNullOrEmpty(ChainObjectDateFormat))
            {
                dataAttribute = Date.ToString(ChainObjectDateFormat);
            }
            documentObject.Attributes.Add("Data", dataAttribute);
            documentObject.Attributes.Add("Tipologia", "REG_PROTOCOLLO");
            documentObject.Attributes.Add("Anno", Date.Year.ToString());

            DateTimeOffset minDateTimeOffset  = Protocols.Min(x => x.RegistrationDate).ToLocalTime();
            DateTimeOffset maxDateTimeOffeset = Protocols.Max(x => x.RegistrationDate).ToLocalTime();

            string daData = minDateTimeOffset.ToString(CultureInfo.InvariantCulture);
            string aData  = maxDateTimeOffeset.ToString(CultureInfo.InvariantCulture);

            if (!string.IsNullOrEmpty(ChainObjectDateFormat))
            {
                daData = minDateTimeOffset.ToString(ChainObjectDateFormat);
            }
            aData = maxDateTimeOffeset.ToString(ChainObjectDateFormat);

            documentObject.Attributes.Add("DaData", daData);
            documentObject.Attributes.Add("AData", aData);

            if (minDateTimeOffset.Date == maxDateTimeOffeset.Date)
            {
                documentObject.Attributes.Add("Oggetto", string.Concat("Registro giornaliero di protocollo dal n. ", JournalPrint.DaNumero.ToString(CultureInfo.InvariantCulture), " al n. ", JournalPrint.ANumero.ToString(CultureInfo.InvariantCulture), " del ", minDateTimeOffset.Date.ToString("dd/MM/yyyy")));
            }
            else
            {
                documentObject.Attributes.Add("Oggetto", string.Concat("Registro giornaliero di protocollo dal n. ", JournalPrint.DaNumero.ToString(CultureInfo.InvariantCulture), " al n. ", JournalPrint.ANumero.ToString(CultureInfo.InvariantCulture), " dal ", minDateTimeOffset.Date.ToString("dd/MM/yyyy"), " al ", maxDateTimeOffeset.Date.ToString("dd/MM/yyyy")));
            }

            documentObject.Attributes.Add("DataInserimentoDocumento", DateTime.Now.ToString(CultureInfo.InvariantCulture));
            documentObject.Attributes.Add("NRegistrazioni", JournalPrint.JournalLog.ProtocolTotal.ToString());
            documentObject.Attributes.Add("NAnnullati", JournalPrint.JournalLog.ProtocolCancelled.ToString());
            documentObject.Attributes.Add("NomeDocumento", name);
            documentObject.Attributes.Add("TipoDocumento", "DOCUMENTO");
            documentObject.Attributes.Add("Tipo", "DOCUMENTO");
            documentObject.Attributes.Add("ProgressivoDocumento", 1.ToString());
            documentObject.Attributes.Add("Riferimenti", "MD");
            documentObject.Attributes.Add("Numero", JournalLog.Id.ToString());
            documentObject.Attributes.Add("NomeArchivio", archiveName);

            FileLogger.Debug(LoggerName, string.Format("Valore della data da inserire in Biblos {0}", dataAttribute));

            return(documentObject);
        }
Ejemplo n.º 2
0
        public static int SaveJournalToBiblos(Location location, TempFileDocumentInfo document)
        {
            var uidDocument = document.ArchiveInBiblos(location.DocumentServer, location.ProtBiblosDSDB);
            // Questa chiamata potrebbe essere lenta con DB Biblos troppo grande (ENPACL)
            const int attemps       = 10;
            Exception lastException = null;

            for (var i = 0; i < attemps; i++)
            {
                try
                {
                    var bdi = new BiblosDocumentInfo(location.DocumentServer, uidDocument.DocumentId);
                    return(bdi.BiblosChainId);
                }
                catch (Exception ex)
                {
                    lastException = ex;
                    FileLogger.Error(LoggerName, string.Format("Tentativo di caricamento idBiblos #{0}/10 fallito per {1}", i, ex.Message), ex);
                    // Riposo il thread 1 minuto
                    Thread.Sleep(20000 * i);
                }
            }
            // Se sono qui significa che non sono riuscito a caricare il numero per 10 volte
            throw new Exception(String.Format("Impossibile caricare l'id Biblos per il registro corrente. GuidDocument = {0}", uidDocument), lastException);
        }