public ActionResult ArchiveMail(Int64 mailId, Int64 mailAccountId = 0) { ISession session = NHibernateManager.OpenSession(); ITransaction tran = session.BeginTransaction(); try { MailAccount currentMailAccount = this.GetMailAccount(mailAccountId); Mail mail = new Mail(mailId, session); mail.Archive(session); //DB tran.Commit(); currentMailAccount.ArchiveMail(mail); //IMAP return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); } catch (Exception exc) { tran.Rollback(); Log.LogException(exc, "Parametros del metodo: mailId(" + mailId.ToString() + "), mailAccountId(" + mailAccountId.ToString() + ")."); return(Json(new { success = false, message = "Error al archivar mail." }, JsonRequestBehavior.AllowGet)); } finally { session.Close(); } }