MessageModel CreateGroupChatPresenceErrorMessage(Presence pres)
{
var builder = CreateMessageBuilder();
builder.AppendEventPrefix();
if (pres.Error == null) {
builder.AppendErrorText(_("An unknown groupchat error occurred: {0}"), pres);
return builder.ToMessage();
}
switch (pres.Error.Type) {
case ErrorType.cancel:
switch (pres.Error.Condition) {
case ErrorCondition.RemoteServerNotFound:
builder.AppendErrorText(_("Server of groupchat \"{0}\" not found."), pres.From.Bare);
break;
case ErrorCondition.ServiceUnavailable:
builder.AppendErrorText(_("MUC service is not available for \"{0}\""), pres.From.Bare);
break;
}
break;
case ErrorType.auth:
switch (pres.Error.Condition) {
case ErrorCondition.NotAuthorized:
builder.AppendErrorText(_("You do not have permission to join \"{0}\""), pres.From.Bare);
break;
}
break;
}
if (String.IsNullOrEmpty(pres.Error.ErrorText) && builder.IsEmpty) {
builder.AppendErrorText(_("An unhandled groupchat error occurred: {0}"), pres.From.Bare);
} else {
builder.AppendErrorText(": {0}", pres.Error.ErrorText);
}
return builder.ToMessage();
}