Move from ValidationErrorResult to HttpBadRequest, and support object-level errors too

This commit is contained in:
SteveSandersonMS
2015-12-14 12:02:41 +00:00
parent bba388944d
commit 8a148d8535
6 changed files with 72 additions and 39 deletions

View File

@@ -0,0 +1,38 @@
using System.Linq;
using System.Text.RegularExpressions;
namespace MusicStore.Models
{
// Obviously this is not a serious sentiment analyser. It is only here to provide an amusing demonstration of cross-property
// validation in AlbumsApiController.
public static class SentimentAnalysis
{
private static string[] positiveSentimentWords = new[] { "happy", "fun", "joy", "love", "delight", "bunny", "bunnies", "asp.net" };
private static string[] negativeSentimentWords = new[] { "sad", "pain", "despair", "hate", "scorn", "death", "package management" };
public static SentimentResult GetSentiment(string text) {
var numPositiveWords = CountWordOccurrences(text, positiveSentimentWords);
var numNegativeWords = CountWordOccurrences(text, negativeSentimentWords);
if (numPositiveWords > numNegativeWords) {
return SentimentResult.Positive;
} else if (numNegativeWords > numPositiveWords) {
return SentimentResult.Negative;
} else {
return SentimentResult.Neutral;
}
}
private static int CountWordOccurrences(string text, string[] words)
{
// Very simplistic matching technique for this sample. Not scalable and not really even correct.
return new Regex(string.Join("|", words), RegexOptions.IgnoreCase).Matches(text).Count;
}
public enum SentimentResult {
Negative,
Neutral,
Positive,
}
}
}