public JsonResult InserisciLetteraTrasferimento(decimal idTrasferimento, string protocolloLettera,
                                                        DateTime dataLettera, HttpPostedFileBase file)
        {
            using (ModelDBISE db = new ModelDBISE())
            {
                try
                {
                    db.Database.BeginTransaction();

                    if (idTrasferimento <= 0)
                    {
                        throw new Exception("ID del trasferimento mancante.");
                    }

                    if (protocolloLettera == string.Empty)
                    {
                        throw new Exception("Il protocollo della lettera è obbligatorio.");
                    }

                    if (dataLettera == null && dataLettera <= DateTime.MinValue)
                    {
                        throw new Exception("La data della lettera è obbligatoria.");
                    }

                    using (dtTrasferimento dtt = new dtTrasferimento())
                    {
                        TrasferimentoModel trm = dtt.GetSoloTrasferimentoById(idTrasferimento, db);

                        trm.protocolloLettera = protocolloLettera;
                        trm.dataLettera       = dataLettera;

                        dtt.EditTrasferimento(trm, 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.Lettera_Trasferimento);

                            if (esisteFile)
                            {
                                if (gestisceEstensioni == false)
                                {
                                    throw new Exception(
                                              "Il documento selezionato non è nel formato consentito. Il formato supportato è: pdf.");
                                }

                                if (dimensioneConsentita)
                                {
                                    dtd.SetLetteraTrasferimento(ref dm, trm.idTrasferimento, db);
                                    //trm.Documento = dm;
                                    //Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento di una nuovo documento (lettera di trasferimento).", "Documenti", db, trm.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 = "La lettera di trasferimento è stata inserita." }));
                }
                catch (Exception ex)
                {
                    db.Database.CurrentTransaction.Rollback();
                    return(Json(new { err = ex.Message }));
                }
            }
        }