public void putMemo(string message, string to, string from, string hash, Uri clientUri) { Memo memo = new Memo(message, from); using (MemoDbConnection conn = new MemoDbConnection()) { conn.BeginTransaction(); try { using (MemoDbContext ctx = new MemoDbContext(conn.Connection, false)) { ctx.Database.UseTransaction(conn.Transaction); var q = from u in ctx.Users where u.Username.Equals (to) select u; if (q.Count() != 1) { conn.CommitTransaction(); return; } User toUser = q.First(); ctx.Memos.Add(memo); toUser.Memos.Add(memo); ctx.SaveChanges(); } conn.CommitTransaction(); } catch { conn.RollbackTransaction(); throw; } } }
public void putPublicMemo(string message, string sender) { Memo memo = new Memo(message, sender); using (MemoDbConnection conn = new MemoDbConnection()) { conn.BeginTransaction(); try { using (MemoDbContext ctx = new MemoDbContext(conn.Connection, false)) { User Anon = AnonymousUser.getAnon(ctx); //ctx.Database.Log = (string log) => { Console.WriteLine(log); }; ctx.Database.UseTransaction(conn.Transaction); ctx.Memos.Add(memo); Anon.Memos.Add(memo); ctx.SaveChanges(); } conn.CommitTransaction(); } catch { conn.RollbackTransaction(); throw; } } }