// Exceptions: // System.ArgumentException: // userBase is null when saving UserBase public void Save(UserBase userBase) { if (userBase.IsNull) { throw new System.ArgumentException("userBase is null when saving UserBase", "userBase"); } if (UserBaseExists(userBase.UniqueID)) { UserBase upToDateUserBase = new UserBase(); try { Load(upToDateUserBase, userBase.UniqueID); } catch { SaveInternal(userBase); return; } if (userBase.CompareTo(upToDateUserBase) != 0) { UpdateInternal(userBase); } } else { SaveInternal(userBase); } }