Esempio n. 1
0
        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;
                }
            }
        }
Esempio n. 2
0
        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;
                }
            }
        }