private static Action<IList<string>> ParseLabelOperation(string labelOperation)
{
switch(labelOperation[0])
{
case LabelOperations.Add: return labels =>
{
var label = LabelFrom(labelOperation);
if (!labels.Contains(label, StringComparer.InvariantCultureIgnoreCase))
{
labels.Add(label);
}
};
case LabelOperations.Remove: return labels => labels.Remove(LabelFrom(labelOperation));
}
throw new ArgumentException("Invalid label operation for label: " + labelOperation, "labelOperations");
}