public ActionResult TrashMail(Int64 id, Int64 mailAccountId = 0) { ISession session = NHibernateManager.OpenSession(); ITransaction tran = session.BeginTransaction(); try { MailAccount mailAccount = this.GetMailAccount(mailAccountId); Mail mail = new Mail(id, session); if (mail == null) { throw new GlimpseException("Mail inexistente: " + id.ToString() + "."); } mailAccount.TrashMail(mail, session); //IMAP y BD tran.Commit(); JsonResult result = Json(new { success = true }, JsonRequestBehavior.AllowGet); return(result); } catch (GlimpseException exc) { tran.Rollback(); Log.LogException(exc, "Parametros de la llamada: mailID(" + id.ToString() + ")."); return(Json(new { success = false, message = exc.GlimpseMessage }, JsonRequestBehavior.AllowGet)); } catch (Exception exc) { tran.Rollback(); Log.LogException(exc, "Parametros de la llamada: mailID(" + id.ToString() + ")."); return(Json(new { success = false, message = exc.Message }, JsonRequestBehavior.AllowGet)); } finally { session.Close(); } }