rendered paste body public static class DbOperations
{
public static void CloseAccount(this BitCoinEscrowAccount account, AccountState state)
{
using (var session = DbProvider.Factory.OpenSession())
using (var transaction = session.BeginTransaction())
{
account.State = state;
if(state != AccountState.Open)
{
account.ClosedDate = DateTime.Now;
}
session.Update(account);
transaction.Commit();
}
}
public static BitCoinEscrowAccount GetAccountByEscrowAddress(this BitCoinEscrowAccount dummy,string address)
{
using (var session = DbProvider.Factory.OpenSession())
using (var transaction = session.BeginTransaction())
{
return session.Get<BitCoinEscrowAccount>(address);
}
}
public static BitCoinEscrowAccount GetAccountByControlAddress(this BitCoinEscrowAccount dummy,string address)
{
using (var session = DbProvider.Factory.OpenSession())
using (var transaction = session.BeginTransaction())
{
var query = from a in session.Query<BitCoinEscrowAccount>()
where a.EscrowCommandAddress == address
select a;
return query.FirstOrDefault();
}
}
public static void Save(this BitCoinEscrowAccount account)
{
using (var session = DbProvider.Factory.OpenSession())
using (var transaction = session.BeginTransaction())
{
session.Save(account);
transaction.Commit();
}
}
public static List<BitCoinEscrowAccount> GetOpenAccounts(this BitCoinEscrowAccount account)
{
using (var session = DbProvider.Factory.OpenSession())
using (var transaction = session.BeginTransaction())
{
var query = from a in session.Query<BitCoinEscrowAccount>()
where
a.State == AccountState.Open && a.IsTestAccount == account.IsTestAccount
select a;
return query.ToList();
}
}
}