Exemplo n.º 1
0
        public static ImportAttestatiResponse ImportAttestati(ImportAttestatiRequest request)
        {
            ImportAttestatiResponse resp            = new ImportAttestatiResponse();
            InfoUtente             iu               = null;
            Ruolo                  role             = null;
            List <SchedaDocumento> docsTrasmissione = new List <SchedaDocumento>();

            using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext())
            {
                try
                {
                    iu               = request.InfoUtente.InfoUtente;
                    role             = UserManager.getRuolo(request.Ruolo.Id);
                    iu.idGruppo      = role.idGruppo;
                    iu.idCorrGlobali = role.systemId;
                    AttestatiListVO attestati = request.Attestati;
                    //lock del documento principale
                    logger.Debug("lock del documento principale, doc number : " + attestati.DocNumber);
                    //creazione schede
                    foreach (AttestatoVO att in attestati.Attestati)
                    {
                        SchedaDocumento sd = CreateSchedaDocumentoFromAttestato(att, iu, role, request.IdRegistro);
                        AcquireFileAndAllegato(att, sd, iu);
                        docsTrasmissione.Add(sd);
                    }
                    //set dello stato del doc principale
                    SchedaDocumento attList = DocManager.getDettaglio(iu, null, request.Attestati.DocNumber);
                    OggettoCustom   oc      = attList.template.ELENCO_OGGETTI.Cast <OggettoCustom>().Single(e => request.Attestati.StatusTemplate.StatusTemplateFieldName.Equals(e.DESCRIZIONE));
                    oc.VALORE_DATABASE = request.Attestati.StatusTemplate.StatusProcessedValue;
                    bool daAggiornareUffRef;
                    DocSave.save(iu, attList, false, out daAggiornareUffRef, role);
                    //unlock del documento principale
                    transactionContext.Complete();
                }
                catch (Exception e)
                {
                    resp.Code         = ImportAttestatiResponseCode.KO;
                    resp.ErrorMessage = e.Message;
                    return(resp);
                }
            }
            if (request.Trasmissione == null)
            {
                logger.Debug("Nessuna trasmissione da eseguire");
                resp.Code = ImportAttestatiResponseCode.OK;
                return(resp);
            }
            else
            {
                try
                {
                    logger.Debug("Esegui trasmissioni");
                    EseguiTrasmissioni(request.Trasmissione, docsTrasmissione, iu, role);
                    resp.Code = ImportAttestatiResponseCode.OK;
                    return(resp);
                }
                catch (Exception e)
                {
                    resp.ErrorMessage = e.Message;
                    resp.Code         = ImportAttestatiResponseCode.WARNING;
                    return(resp);
                }
            }
        }
Exemplo n.º 2
0
 public ImportAttestatiResponse ImportAttestati(ImportAttestatiRequest request)
 {
     return(SanitaManager.ImportAttestati(request));
 }