private void UpdateCustomerExternalIdentityMapCache(RequestContext requestContext, string externalIdentityId, string externalIdentityIssuer) { CustomerExternalIdentityMap customerExternalIdentityMap = this.GetCustomerAccountByExternalIdentityFromDb(requestContext, externalIdentityId, externalIdentityIssuer); CustomerL2CacheDataStoreAccessor levelL2CacheDataAccessor = this.GetCustomerL2CacheDataStoreAccessor(requestContext); levelL2CacheDataAccessor.CacheCustomerAccountByExternalIdentity(externalIdentityId, externalIdentityIssuer, customerExternalIdentityMap); }
/// <summary> /// Gets the customer account by external identity. /// </summary> /// <param name="request">The data service request.</param> /// <returns>The data service response.</returns> private SingleEntityDataServiceResponse <CustomerExternalIdentityMap> GetCustomerAccountByExternalIdentity(GetCustomerAccountByExternalIdentityDataRequest request) { CustomerL2CacheDataStoreAccessor levelL2CacheDataAccessor = this.GetCustomerL2CacheDataStoreAccessor(request.RequestContext); bool foundInCache; bool updateCache; CustomerExternalIdentityMap customerExternalIdentityMap = DataManager.GetDataFromCache(() => levelL2CacheDataAccessor.GetCustomerAccountByExternalIdentity(request.ExternalIdentityId, request.ExternalIdentityIssuer), out foundInCache, out updateCache); if (!foundInCache) { customerExternalIdentityMap = this.GetCustomerAccountByExternalIdentityFromDb(request.RequestContext, request.ExternalIdentityId, request.ExternalIdentityIssuer); } if (updateCache && (customerExternalIdentityMap != null)) { levelL2CacheDataAccessor.CacheCustomerAccountByExternalIdentity(request.ExternalIdentityId, request.ExternalIdentityIssuer, customerExternalIdentityMap); } return(new SingleEntityDataServiceResponse <CustomerExternalIdentityMap>(customerExternalIdentityMap)); }