CatalogSiteAgent Class
The CatalogSiteAgent class contains configuration for a connection directly to a Commerce Server site's catalog database. This class cannot be inherited.
Assembly: Microsoft.CommerceServer.Catalog (in Microsoft.CommerceServer.Catalog.dll)
The CatalogSiteAgent class contains configuration for a connection directly to a Commerce Server site's catalog database.
The SiteName is used to find the connection string to connect to the database and also to find the authorization configuration.
public CatalogContext GetCatalogContext()
{
CatalogContext catalogContext = null;
CatalogServiceAgent catalogServiceAgent = null;
try
{
if (config.InitializationMode == ConnectionMode.Agent)
{//AGENT MODE
if ((config.UserName == null) || (config.UserName.Equals(
Environment.GetEnvironmentVariable("USERDOMAIN") + @"\" +
Environment.GetEnvironmentVariable("USERNAME"))))
{
// Default case when nothing is specified
// Uses the user's default credentials when anonymous is not allowed
catalogServiceAgent = new CatalogServiceAgent(config.WebServiceURL, ServiceAgent.DefaultAuthMethods);
catalogContext = CatalogContext.Create(catalogServiceAgent);
}
else if (config.UserName != null)
{
// Create custom
CredentialCache credentials = new CredentialCache();
NetworkCredential networkCredential = new NetworkCredential();
//create new uri with web service url
System.Uri uri = new System.Uri(config.WebServiceURL);
//add the user name, password, and domain to the network credential
int index = config.UserName.IndexOf(@"\");
networkCredential.UserName = config.UserName.Substring(index + 1);
networkCredential.Password = config.Password;
networkCredential.Domain = config.UserName.Substring(1, index - 1);
//add the network credential to the credential cache collection
credentials.Add(uri, "NTLM", networkCredential);
catalogServiceAgent = new CatalogServiceAgent(config.WebServiceURL, ServiceAgent.DefaultAuthMethods);
catalogServiceAgent.Credentials = credentials;
catalogContext = CatalogContext.Create(catalogServiceAgent);
}
else
throw new System.InvalidOperationException("Cannot perform this operation without initialization");
}
else
{//INPROC MODE
CatalogSiteAgent csa = new CatalogSiteAgent();
csa.AuthorizationMode = config.AuthorizationMode;
csa.AuthorizationPolicyPath = config.AzManXmlFileStore;
csa.IgnoreInventorySystem = config.IgnoreInventorySystem;
csa.SiteName = config.SiteName;
catalogContext = CatalogContext.Create(csa);
}
}
catch (Exception e)
{
Console.WriteLine("Error getting CatalogContext: " + e.Message);
throw e;
}
if (catalogContext != null)
inventoryContext = catalogContext.InventoryContext;
return catalogContext;
}