public int StoreUser(User user, IEnumerable <ChangeItem> changeItems) { int userId = default(int); using (TransactionScope transaction = new TransactionScope()) { userId = rep.SaveUser(user); foreach (ChangeItem item in changeItems) { if (item.Object is Role) { Role role = (Role)item.Object; switch (item.ChangeType) { case ChangeType.ChildInsert: case ChangeType.ChildUpate: rep.AddUserToRole(user, role); break; case ChangeType.ChildDelete: rep.RemoveUserFromRole(user, role); break; } } } transaction.Complete(); } return(userId); }