本文整理汇总了C#中DreamMessage.ToText方法的典型用法代码示例。如果您正苦于以下问题:C# DreamMessage.ToText方法的具体用法?C# DreamMessage.ToText怎么用?C# DreamMessage.ToText使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DreamMessage
的用法示例。
在下文中一共展示了DreamMessage.ToText方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Call
public void Call(string verb, XUri uri, DreamMessage request)
{
_called = true;
if(_autoInvokeDelegate != null) {
DreamMessage response;
string failure;
if(!_autoInvokeDelegate(verb, uri, request, out response, out failure)) {
AddFailure(failure);
} else {
_response = response;
}
}
if(_expectedVerb != null && _expectedVerb != verb) {
AddFailure("Expected verb '{0}', got '{1}'", _expectedVerb, verb);
}
if(_expectedUri != null && _expectedUri != uri) {
AddFailure("Uri:\r\nExpected: {0}\r\nGot: {1}", _expectedUri, uri);
}
if(_expectedRequest != null) {
if(request.Status != _expectedRequest.Status) {
AddFailure("Status:\r\nExpected: {0}\r\nGot: {1}", _expectedRequest.Status, request.Status);
} else if(!request.ContentType.Match(_expectedRequest.ContentType)) {
AddFailure("Content type:\r\nExpected: {0}\r\nGot: {1}", _expectedRequest.ContentType, request.ContentType);
} else if(!StringUtil.EqualsInvariant(request.ToText(), _expectedRequest.ToText())) {
AddFailure("Content:\r\nExpected: {0}\r\nGot: {1}", _expectedRequest.ToText(), request.ToText());
}
} else if(_expectedRequestDocCallback == null) {
if(!request.HasDocument && _expectedRequestDoc != null) {
AddFailure("Expected a document in request, got none");
} else if(request.HasDocument && _expectedRequestDoc != null && _expectedRequestDoc != request.ToDocument()) {
AddFailure("Content:\r\nExpected: {0}\r\nGot: {1}", _expectedRequestDoc.ToString(), request.ToText());
}
} else {
if(!request.HasDocument) {
AddFailure("Expected a document in request, got none for callback");
} else if(request.HasDocument && !_expectedRequestDocCallback(request.ToDocument())) {
AddFailure("Request document'{0}', failed callback check", request.ToDocument());
}
}
if(_expectedRequestHeaders.Count > 0) {
Dictionary<string, string> headers = new Dictionary<string, string>();
foreach(KeyValuePair<string, string> header in request.Headers) {
if(_expectedRequestHeaders.ContainsKey(header.Key) && _expectedRequestHeaders[header.Key] != header.Value) {
AddFailure("Expected header '{0}:\r\nExpected: {1}\r\nGot: {2}", header.Key, _expectedRequestHeaders[header.Key], header.Value);
}
headers[header.Key] = header.Value;
}
foreach(KeyValuePair<string, string> header in _expectedRequestHeaders) {
if(!headers.ContainsKey(header.Key)) {
AddFailure("Expected header '{0}', got none", header.Key);
}
}
}
}
示例2: Can_clone_no_content_message
public void Can_clone_no_content_message()
{
var m = new DreamMessage(DreamStatus.Ok, new DreamHeaders().Add("foo", "bar"));
m.Headers.Add("baz", "blah");
var m2 = m.Clone();
Assert.AreEqual(m.ToText(), m2.ToText());
Assert.AreEqual(m.Headers["foo"], m2.Headers["foo"]);
Assert.AreEqual(m.Headers["baz"], m2.Headers["baz"]);
}
示例3: DispatchCompletion_Helper
private void DispatchCompletion_Helper(DispatchItem destination, DreamMessage response, Result<bool> result)
{
PubSubSubscriptionSet set;
lock(_subscriptionsByOwner) {
if(!_subscriptionByLocation.TryGetValue(destination.Location, out set)) {
_log.DebugFormat("the subscription at location '{0}' no longer exists, dropping event '{1}' ", destination.Location, destination.Event.Id);
result.Return(true);
return;
}
}
if(set.UsesFailureDuration) {
if(response.IsSuccessful || response.Status == DreamStatus.NotModified) {
result.Return(true);
return;
}
var queue = _queueRepository[set];
if(queue == null) {
_log.DebugFormat("the dispatch queue for subscription at location '{0}' no longer exists, dropping event '{1}' ", destination.Location, destination.Event.Id);
result.Return(true);
return;
}
if(queue.FailureWindow > set.MaxFailureDuration) {
_log.DebugFormat("the destination has failed continously for {0} and had an expiration failure window of {1}. The subscription at location '{2}' has been dropped, as has event '{3}'",
queue.FailureWindow,
set.MaxFailureDuration,
destination.Location,
destination.Event.Id
);
RemoveSet(set.Location);
result.Return(true);
return;
}
result.Return(false);
return;
}
if(response.IsSuccessful || response.Status == DreamStatus.NotModified) {
// if the post was a success, or didn't affect a change, clear any failure count
lock(_dispatchFailuresByLocation) {
if(_log.IsDebugEnabled) {
if(_dispatchFailuresByLocation.ContainsKey(destination.Location)) {
_log.Debug("zeroing out existing error count");
}
}
_dispatchFailuresByLocation.Remove(destination.Location);
}
} else {
// post was a failure, increase consecutive failures
if(_log.IsWarnEnabled) {
_log.WarnFormat("event dispatch to '{0}' failed: {1} - {2}", destination, response.Status, response.ToText());
}
lock(_dispatchFailuresByLocation) {
// NOTE (arnec): using ContainsKey instead of TryGetValue, since we're incrementing a value type in place
if(!_dispatchFailuresByLocation.ContainsKey(destination.Location)) {
_dispatchFailuresByLocation.Add(destination.Location, 1);
} else {
_dispatchFailuresByLocation[destination.Location]++;
}
var failures = _dispatchFailuresByLocation[destination.Location];
_log.DebugFormat("failure {0} out of {1} for set at location {2}", failures, set.MaxFailures, destination.Location);
// kick out a subscription set if one of its subscriptions fails too many times
if(failures > set.MaxFailures) {
_log.DebugFormat("exceeded max failures, kicking set at '{0}'", set.Location);
RemoveSet(destination.Location);
}
}
}
// Note (arnec): max-failure sets always "succeed" at dispatch since their queues are not kept around
result.Return(true);
}