internal string FormatMessageString(string messageText, params object[] args) {
if (string.IsNullOrEmpty(messageText)) {
return string.Empty;
}
if (args == null) {
return messageText;
}
if (messageText.StartsWith(Constants.MSGPrefix, true, CultureInfo.CurrentCulture)) {
// check with the caller first, then with the local resources, and fallback to using the messageText itself.
messageText = GetMessageString(messageText.Substring(Constants.MSGPrefix.Length), GetMessageStringInternal(messageText) ?? messageText) ?? GetMessageStringInternal(messageText) ?? messageText;
}
// if it doesn't look like we have the correct number of parameters
// let's return a fix-me-format string.
var c = messageText.ToCharArray().Where(each => each == '{').Count();
if (c < args.Length) {
return FixMeFormat(messageText, args);
}
return string.Format(CultureInfo.CurrentCulture, messageText, args);
}