public JsonResult InserisciDocumentoTV( decimal idTrasferimento, decimal idTipoDocumento, HttpPostedFileBase file, decimal idFamiliare, decimal idAttivazione, decimal idParentela, decimal idConiugeTV, decimal idFigliTV, decimal idDocTV) { using (ModelDBISE db = new ModelDBISE()) { CONIUGETITOLIVIAGGIO ctv = new CONIUGETITOLIVIAGGIO(); FIGLITITOLIVIAGGIO ftv = new FIGLITITOLIVIAGGIO(); try { db.Database.BeginTransaction(); using (dtVariazioneTitoliViaggi dtvtv = new dtVariazioneTitoliViaggi()) { using (dtDocumenti dtd = new dtDocumenti()) { DocumentiModel dm = new DocumentiModel(); bool esisteFile = false; bool gestisceEstensioni = false; bool dimensioneConsentita = false; string dimensioneMaxConsentita = string.Empty; Utility.PreSetDocumento(file, out dm, out esisteFile, out gestisceEstensioni, out dimensioneConsentita, out dimensioneMaxConsentita, (EnumTipoDoc)idTipoDocumento); if (esisteFile) { if (gestisceEstensioni == false) { throw new Exception( "Il documento selezionato non è nel formato consentito. Il formato supportato è: pdf."); } if (dimensioneConsentita) { //verifica se il documento è gia presente ritornando l'eventuale id //decimal idDocumentoEsistente = dtvtv.VerificaEsistenzaDocumentoTV(idTrasferimento, idTipoDocumento, idParentela, idFamiliare); decimal idDocumentoEsistente = idDocTV; if (idDocumentoEsistente > 0) { //se già esiste lo sostituisco (imposto modificato=true su quello esistente e ne inserisco una altro) dtvtv.SostituisciDocumentoTV(ref dm, idDocumentoEsistente, idAttivazione, db); } else { //se non esiste lo inserisco dtvtv.SetDocumentoTV(ref dm, idAttivazione, db); } switch ((EnumParentela)idParentela) { case EnumParentela.Coniuge: dtvtv.AssociaDocumento_ConiugeTV(idConiugeTV, dm.idDocumenti, db); dtd.AssociaDocumentoConiuge(idFamiliare, dm.idDocumenti, db); break; case EnumParentela.Figlio: dtvtv.AssociaDocumento_FigliTV(idFigliTV, dm.idDocumenti, db); dtd.AssociaDocumentoFiglio(idFamiliare, dm.idDocumenti, db); break; } Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento di una nuovo documento (maggiorazione abitazione).", "Documenti", db, idTrasferimento, dm.idDocumenti); } else { throw new Exception( "Il documento selezionato supera la dimensione massima consentita (" + dimensioneMaxConsentita + " Mb)."); } } else { throw new Exception("Il documento è obbligatorio."); } } } db.Database.CurrentTransaction.Commit(); return(Json(new { msg = "Il documento è stato inserito." })); } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); return(Json(new { err = ex.Message })); } } }