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);
        }