public string CreateCart(string clientId, string password) { if (string.IsNullOrWhiteSpace(clientId)) { throw new ArgumentException(INVALID_CLIENTID_ERROR); } if (string.IsNullOrEmpty(password)) { throw new ArgumentException(INVALID_PASSWORD_ERROR); } if (!_authenticator.Login(clientId, password)) { throw new ArgumentException(LOGIN_IS_INVALID_ERROR); } var cartId = GenerateUniqueIdentifier(); var session = new Session(new Cart(_catalog), _internalClock.GetDateTime(), clientId); _carts.Add(cartId, session); return(cartId); }