Exemple #1
0
 private static DocumentAttributeValue Convert(this MetadatoItem metadato, DocumentAttribute biblosDSMetadato)
 {
     return(new DocumentAttributeValue
     {
         IdAttribute = biblosDSMetadato.IdAttribute,
         Attribute = biblosDSMetadato,
         Value = metadato.Value
     });
 }
Exemple #2
0
        private static void CheckPreservationResponse(VerificaStatoConservazioneDocumentoResponse response, Document documentInfo)
        {
            response.Eseguito = true;

            var listaMetadatoItem = new List <MetadatoItem>();

            foreach (var attributeValue in documentInfo.AttributeValues)
            {
                var proprietaDocumento = new MetadatoItem
                {
                    Name      = attributeValue.Attribute.Name,
                    Posizione = attributeValue.Attribute.ConservationPosition,
                    Value     = attributeValue.Value,
                    Tipo      = attributeValue.Attribute.AttributeType
                };

                listaMetadatoItem.Add(proprietaDocumento);
            }
            response.StatoDocumento.ProprietaDocumento = new List <MetadatoItem>();
            response.StatoDocumento.ProprietaDocumento.AddRange(listaMetadatoItem);
            response.Conservato = documentInfo.IdPreservation.HasValue;
            if (documentInfo.Preservation != null)
            {
                if (documentInfo.Preservation.CloseDate.HasValue)
                {
                    response.StatoDocumento.CodiceStato = StatoConservazione.STATODOC_ARCHIVIATO;
                }
                else
                {
                    response.StatoDocumento.CodiceStato = StatoConservazione.STATODOC_INCORSO;
                }
            }
            else
            {
                response.StatoDocumento.CodiceStato = response.Conservato ? StatoConservazione.STATODOC_ARCHIVIATO : StatoConservazione.STATODOC_NONARCHIVIATO;
            }
        }
        /// <summary>
        /// Informazioni su di un documento
        /// </summary>
        /// <param name="request">
        /// <see cref="InfoDocumentoChiaveRequest">request</see>
        /// </param>
        /// <returns>
        /// <see cref="InfoDocumentoChiaveResponse">response</see>
        /// </returns>
        /// <remarks>
        /// IdDocumento richiesto per effattuare la richiesta
        /// </remarks>
        /// <example>
        /// var request = new InfoDocumentoRequest
        /// {
        ///     IdDocumento = new Guid("d4d7a0dc-5cf2-4813-a1d7-0006b53c7799"),
        ///     IdClient = "ClienteTest",
        ///     dRichiesta = "20081128000001",
        ///     IdCliente = "ClienteTest",
        ///     TipoDocumento = "DDT_ATH_TEST2"
        /// };
        /// Assert.IsTrue(DocumentoFacade.InfoDocumento(request).CodiceEsito == CodiceErrore.NessunErrore);
        /// </example>
        public static InfoDocumentoResponse InfoDocumento(InfoDocumentoRequest request)
        {
            var response = new InfoDocumentoResponse {
                StatoDocumento = new StatoDocumento()
            };

            try
            {
                logger.DebugFormat("InfoDocumento request:{0}", request.ToString());
                response.TokenInfo = Helpers.ValidaToken(request);
                if (response.TokenInfo == null)
                {
                    response.CodiceEsito = CodiceErrore.TokenNonValidoOScaduto;
                }
                else
                {
                    var checkRequestResult = request.CheckRequest(response);
                    if (checkRequestResult != CodiceErrore.NessunErrore)
                    {
                        response.CodiceEsito = checkRequestResult;
                        response.Eseguito    = false;
                    }
                    else
                    {
                        if (request.IdDocumento == Guid.Empty)
                        {
                            response.CodiceEsito = CodiceErrore.IdDocumentoNonValido;
                            response.Eseguito    = false;
                        }
                        else
                        {
                            //Recupero Archive
                            var idArchive = Helpers.GetArchive(request);
                            if (!idArchive.HasValue)
                            {
                                response.CodiceEsito = CodiceErrore.ArchivioNonDefinito;
                                response.Eseguito    = false;
                            }
                            else
                            {
                                using (var client = new DocumentsClient())
                                {
                                    try
                                    {
                                        //TODO Controllare come mai non torna l'ultima versione
                                        response.Documento = new DocumentoItem {
                                            IdDocumento = request.IdDocumento, Stato = Operazione.Default
                                        };
                                        var documentInfo = client.GetDocumentInfoById(request.IdDocumento);
                                        response.Eseguito       = true;
                                        response.Documento.Nome = documentInfo.Name;
                                        var listaMetadatoItem = new List <MetadatoItem>();

                                        foreach (var attributeValue in documentInfo.AttributeValues)
                                        {
                                            var proprietaDocumento = new MetadatoItem
                                            {
                                                Name      = attributeValue.Attribute.Name,
                                                Posizione = attributeValue.Attribute.ConservationPosition,
                                                Value     = attributeValue.Value,
                                                Tipo      = attributeValue.Attribute.AttributeType
                                            };

                                            listaMetadatoItem.Add(proprietaDocumento);
                                        }

                                        response.StatoDocumento.ProprietaDocumento = new List <MetadatoItem>();
                                        response.StatoDocumento.ProprietaDocumento.AddRange(listaMetadatoItem);
                                        logger.DebugFormat("InfoDocumento response:{0}", response.ToString());
                                    }
                                    catch (FaultException <BiblosDsException> faultEx)
                                    {
                                        logger.Error(faultEx);
                                        response.Eseguito = false;
                                        ParseBiblosDSFaultException(response, faultEx);
                                    }
                                    catch (Exception ex)
                                    {
                                        logger.Error(ex);
                                        response.Eseguito        = false;
                                        response.CodiceEsito     = CodiceErrore.ErroreGenerico;
                                        response.MessaggioErrore = ex.ToString();
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex);
                response.Eseguito        = false;
                response.CodiceEsito     = CodiceErrore.ErroreGenerico;
                response.MessaggioErrore = ex.ToString();
            }
            response.CheckResponse();
            return(response);
        }