本文整理汇总了C#中Options.SessionFactory方法的典型用法代码示例。如果您正苦于以下问题:C# Options.SessionFactory方法的具体用法?C# Options.SessionFactory怎么用?C# Options.SessionFactory使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Options
的用法示例。
在下文中一共展示了Options.SessionFactory方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
static void Main(string[] args)
{
Options options = new Options();
if (!options.Parse(args))
Environment.Exit(1);
RetsSession session = options.SessionFactory();
try
{
if (!session.Login(options.user_name, options.user_password))
{
Console.WriteLine("Invalid login");
Environment.Exit(1);
}
/*
* Create an update request.
*/
UpdateRequest updateRequest = session.CreateUpdateRequest(
options.update_resource,
options.update_class);
updateRequest.SetDelimiter("|");
updateRequest.SetValidateFlag(options.validation_code);
updateRequest.SetUpdateType(options.update_type);
/*
* Pull apart the Record.
*/
string[] lines = options.update_record.Split(",".ToCharArray());
/*
* We should now have key/value pairs in lines.
* Process them.
*/
foreach (string line in lines)
{
string[] keyValue = line.Split("=".ToCharArray());
string key = keyValue[0].Trim();
string value = keyValue[1].Trim();
updateRequest.SetField(key, value);
}
/*
* Perform the update.
*/
UpdateResponse results = session.Update(updateRequest);
IEnumerable columns = null;
while (results.HasNext())
{
if (columns == null)
{
columns = results.GetColumns();
}
foreach (string column in columns)
{
Console.WriteLine(column + ": " + results.GetString(column));
}
Console.WriteLine();
}
/*
* See if there are errors. If so, show them.
*/
bool seen = false;
while (results.HasNextError())
{
if (!seen)
{
seen = true;
Console.WriteLine("Errors:");
}
Console.WriteLine(results.GetErrorFieldName() +
", Error: " +
results.GetErrorNumber() +
" at offset " +
results.GetErrorOffset() +
", Message: " +
results.GetErrorText());
}
/*
* See if there are warnings. If so, show them.
*/
seen = false;
while (results.HasNextWarning())
{
if (!seen)
{
seen = true;
Console.WriteLine("Warnings:");
}
Console.WriteLine(results.GetWarningFieldName() +
", Error: " +
results.GetWarningNumber() +
//.........这里部分代码省略.........
示例2: Main
/*
* This class demonstrates the interleaving of search transactions.
*/
static void Main(string[] args)
{
Options options = new Options();
if (!options.Parse(args))
Environment.Exit(1);
RetsSession session = options.SessionFactory();
try {
if (!session.Login(options.user_name, options.user_password))
{
Console.WriteLine("Invalid login");
Environment.Exit(1);
}
} catch (Exception e)
{
Console.WriteLine("RetsException: " + e);
Environment.Exit(1);
}
RetsVersion version = session.GetDetectedRetsVersion();
Console.WriteLine("RETS Version: " +
((version == RetsVersion.RETS_1_5) ? "1.5" :
((version == RetsVersion.RETS_1_7) ? "1.7" : "1.0")));
/*
* Find the key field for the resource.
*/
RetsMetadata metadata = session.GetMetadata();
MetadataResource metadataResource = metadata.GetResource(options.search_type);
if (metadataResource == null)
{
Console.WriteLine("Invalid resource: " + options.search_type);
session.Logout();
Environment.Exit(1);
}
string keyField = metadataResource.GetKeyField();
/*
* Find the timestamp field if it is known (RETS 1.7 and later). If
* not known, then the user must provide it.
*/
MetadataClass metadataClass = metadata.GetClass(options.search_type, options.search_class);
if (metadataClass == null)
{
Console.WriteLine("Invalid resource:class: " + options.search_type + ":" + options.search_class);
session.Logout();
Environment.Exit(2);
}
if (options.classTimeStamp != null && options.classTimeStamp.Length == 0)
options.classTimeStamp = metadataClass.GetStringAttribute("ClassTimeStamp");
if (options.classTimeStamp == null || options.classTimeStamp.Length == 0)
{
Console.WriteLine("Class " + options.search_type +
":" + options.search_class +
" has no ClassTimeStamp specified in the metadata.");
Console.WriteLine("Please manually provide one using the --timetsamp switch.");
session.Logout();
Environment.Exit(2);
}
/*
* See if the last modified timestamp has been provided. If not, use yesterday.
*/
if (options.lastModified == null || options.lastModified.Length == 0)
{
DateTime ts = DateTime.Now;
options.lastModified = ts.AddDays(-1).ToString("yyyy-MM-dd");
}
/*
* OK - let's find all listings that have changed since the lastModified date.
*/
SearchRequest searchRequest = session.CreateSearchRequest(
options.search_type,
options.search_class,
"(" +
options.classTimeStamp.ToString() +
"=" +
options.lastModified.ToString() +
"+)");
searchRequest.SetSelect(keyField);
searchRequest.SetLimit(SearchRequest.LIMIT_NONE);
searchRequest.SetOffset(SearchRequest.OFFSET_NONE);
searchRequest.SetCountType(SearchRequest.CountType.RECORD_COUNT_AND_RESULTS);
searchRequest.SetStandardNames(false);
/*
//.........这里部分代码省略.........
示例3: Main
static void Main(string[] args)
{
Options options = new Options();
if (!options.Parse(args))
Environment.Exit(1);
RetsSession session = options.SessionFactory();
try {
if (!session.Login(options.user_name, options.user_password))
{
Console.WriteLine("Invalid login");
Environment.Exit(1);
}
} catch (Exception e)
{
Console.WriteLine("RetsException: " + e);
Environment.Exit(1);
}
Console.WriteLine("Action: " + session.GetAction());
RetsVersion version = session.GetDetectedRetsVersion();
Console.WriteLine("RETS Version: " +
((version == RetsVersion.RETS_1_5) ? "1.5" :
((version == RetsVersion.RETS_1_7) ? "1.7" : "1.0")));
SearchRequest searchRequest = session.CreateSearchRequest(
options.search_type, options.search_class, options.query);
searchRequest.SetSelect(options.select);
searchRequest.SetLimit(options.limit);
searchRequest.SetOffset(options.offset);
searchRequest.SetCountType(options.count);
searchRequest.SetStandardNames(options.standard_names);
searchRequest.SetRestrictedIndicator("XXXX");
searchRequest.SetFormatType(SearchRequest.FormatType.COMPACT);
SearchResultSet results = session.Search(searchRequest);
Console.WriteLine("Record count: " + results.GetCount());
Console.WriteLine();
IEnumerable columns = null;
while (results.HasNext())
{
if (columns == null)
{
columns = results.GetColumns();
}
foreach (string column in columns)
{
Console.WriteLine(column + ": " + results.GetString(column));
}
Console.WriteLine();
}
LogoutResponse logout = session.Logout();
Console.WriteLine("Billing info: " + logout.GetBillingInfo());
Console.WriteLine("Logout message: " + logout.GetLogoutMessage());
Console.WriteLine("Connect time: " + logout.GetConnectTime());
}
示例4: Main
static void Main(string[] args)
{
Options options = new Options();
if (!options.Parse(args))
Environment.Exit(1);
RetsSession session = options.SessionFactory();
session.SetIncrementalMetadata(options.full_metadata ? false : true);
try
{
if (!session.Login(options.user_name, options.user_password))
{
Console.WriteLine("Invalid login");
Environment.Exit(1);
}
}
catch (Exception e)
{
Console.WriteLine("RetsException: " + e);
Environment.Exit(1);
}
RetsMetadata metadata = session.GetMetadata();
dumpSystem(metadata);
dumpForeignKeys(metadata);
dumpAllResources(metadata);
session.Logout();
}
示例5: Main
static void Main(string[] args)
{
Options options = new Options();
if (!options.Parse(args))
Environment.Exit(1);
RetsSession session = options.SessionFactory();
try {
if (!session.Login(options.user_name, options.user_password))
{
Console.WriteLine("Invalid login");
Environment.Exit(1);
}
} catch (Exception e)
{
Console.WriteLine("RetsException: " + e);
Environment.Exit(1);
}
SearchRequest searchRequest = session.CreateSearchRequest(
options.search_type, options.search_class, options.query);
searchRequest.SetSelect(options.select);
searchRequest.SetLimit(options.limit);
searchRequest.SetOffset(options.offset);
searchRequest.SetCountType(options.count);
searchRequest.SetStandardNames(options.standard_names);
try
{
Stream outputStream = File.OpenWrite("rawsearch.xml");
byte [] data = session.SearchAsArray(searchRequest);
outputStream.Write(data, 0, data.Length);
outputStream.Close();
}
catch (Exception e)
{
Console.WriteLine("RetsException: " + e);
session.Logout();
Environment.Exit(1);
}
session.Logout();
try
{
// I'd rather use ReadAllBytes, but it doesn't exist in all versions.
// byte [] data = File.ReadAllBytes("rawsearch.xml");
//
FileInfo info = new FileInfo("rawsearch.xml");
int len = (int)info.Length;
byte [] data = new byte [len];
FileStream inputStream = info.OpenRead();
inputStream.Read(data,0,len);
SearchResultSet results = new SearchResultSet();
results.SetEncoding(options.encoding);
results.SetDataAsArray(data);
Console.WriteLine("Record count: " + results.GetCount());
Console.WriteLine();
IEnumerable columns = null;
while (results.HasNext())
{
if (columns == null)
{
columns = results.GetColumns();
}
foreach (string column in columns)
{
Console.WriteLine(column + ": " + results.GetString(column));
}
Console.WriteLine();
}
}
catch (Exception e)
{
Console.WriteLine("RetsException: " + e);
session.Logout();
Environment.Exit(1);
}
}