public GoogleContactContext (GoogleGroupCache groupCache, IGoogleApiOperationExecutor apiOperationExecutor, IEqualityComparer<string> contactIdComparer, string userName)
{
if (groupCache == null)
throw new ArgumentNullException (nameof (groupCache));
if (apiOperationExecutor == null)
throw new ArgumentNullException (nameof (apiOperationExecutor));
if (contactIdComparer == null)
throw new ArgumentNullException (nameof (contactIdComparer));
if (String.IsNullOrEmpty (userName))
throw new ArgumentException ("Argument is null or empty", nameof (userName));
GroupCache = groupCache;
_apiOperationExecutor = apiOperationExecutor;
_userName = userName;
_contactsById = new Dictionary<string, Contact> (contactIdComparer);
}