public JsonResult InserisciDocumentoMAB(decimal idTrasferimento, decimal idTipoDocumento, HttpPostedFileBase file) { using (ModelDBISE db = new ModelDBISE()) { try { db.Database.BeginTransaction(); using (dtMaggiorazioneAbitazione dtma = new dtMaggiorazioneAbitazione()) { AttivazioneMABModel amm = new AttivazioneMABModel(); //leggo la prima attivazione amm = dtma.GetAttivazionePartenzaMAB(idTrasferimento); //se non esiste la creo if ((amm != null && amm.idAttivazioneMAB > 0) == false) { amm = dtma.CreaAttivazioneMAB(amm.idMAB, db); } 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 = dtma.VerificaEsistenzaDocumentoMAB(idTrasferimento, (EnumTipoDoc)idTipoDocumento); if (idDocumentoEsistente > 0) { //se già esiste lo sostituisco (imposto modificato=true su quello esistente e ne inserisco una altro) dtma.SostituisciDocumentoMAB(ref dm, idDocumentoEsistente, amm.idAttivazioneMAB, db); } else { //se non esiste lo inserisco dtma.SetDocumentoMAB(ref dm, amm.idAttivazioneMAB, db); } dtma.AssociaDocumentoAttivazione(amm.idAttivazioneMAB, dm.idDocumenti, db); 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 })); } } }