using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ProjectNamespace
{
public class UnitOfWork:ProjectNamespace.Shared.Behaviors.IUnitOfWork
{
readonly System.Data.Common.DbTransaction transaction;
bool isDisposed = false;
public UnitOfWork(ProjectNamespace.DEVEntities context)
{
transaction=context.Connection.BeginTransaction();
}
public void Save()
{
transaction.Commit();
isDisposed = true;
//assumption is there would never be multiple UoWs per request context
transaction.Dispose();
}
public void Dispose()
{
if (isDisposed == false)
{
isDisposed = true;
transaction.Dispose();
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0OwoKbmFtZXNwYWNlIFByb2plY3ROYW1lc3BhY2UKewoJcHVibGljIGNsYXNzIFVuaXRPZldvcms6UHJvamVjdE5hbWVzcGFjZS5TaGFyZWQuQmVoYXZpb3JzLklVbml0T2ZXb3JrCgl7CgkJcmVhZG9ubHkgU3lzdGVtLkRhdGEuQ29tbW9uLkRiVHJhbnNhY3Rpb24gdHJhbnNhY3Rpb247CgkJYm9vbCBpc0Rpc3Bvc2VkID0gZmFsc2U7CgkJcHVibGljIFVuaXRPZldvcmsoUHJvamVjdE5hbWVzcGFjZS5ERVZFbnRpdGllcyBjb250ZXh0KQoJCXsKCQkJdHJhbnNhY3Rpb249Y29udGV4dC5Db25uZWN0aW9uLkJlZ2luVHJhbnNhY3Rpb24oKTsKCQl9CgoJCXB1YmxpYyB2b2lkIFNhdmUoKQoJCXsKCQkJdHJhbnNhY3Rpb24uQ29tbWl0KCk7CgkJCWlzRGlzcG9zZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAvL2Fzc3VtcHRpb24gaXMgdGhlcmUgd291bGQgbmV2ZXIgYmUgbXVsdGlwbGUgVW9XcyBwZXIgcmVxdWVzdCBjb250ZXh0CgkJCXRyYW5zYWN0aW9uLkRpc3Bvc2UoKTsgCgkJCQoJCX0KCgkJcHVibGljIHZvaWQgRGlzcG9zZSgpCgkJewoJCQlpZiAoaXNEaXNwb3NlZCA9PSBmYWxzZSkKCQkJewoJCQkJaXNEaXNwb3NlZCA9IHRydWU7CgkJCQl0cmFuc2FjdGlvbi5EaXNwb3NlKCk7CgkJCX0KCQl9Cgl9Cn0K