/// <summary> Matches tags of given model. </summary> /// <param name="model">Model.</param> /// <param name="zoomLevel">Current zoom level.</param> /// <returns>True if model is matched.</returns> protected bool MatchTags(Model model, int zoomLevel) { switch (Operation) { case MapCssStrings.OperationZoom: return(Zoom.Contains(zoomLevel)); case MapCssStrings.OperationExist: return(model.Tags.ContainsKey(Tag)); case MapCssStrings.OperationNotExist: return(!model.Tags.ContainsKey(Tag)); case MapCssStrings.OperationEquals: return(model.Tags.ContainsKeyValue(Tag, Value)); case MapCssStrings.OperationNotEquals: return(model.Tags.IsNotEqual(Tag, Value)); case MapCssStrings.OperationLess: return(model.Tags.IsLess(Tag, Value)); case MapCssStrings.OperationGreater: return(model.Tags.IsGreater(Tag, Value)); default: throw new MapCssFormatException( String.Format(Strings.MapCssUnsupportedSelectorOperation, Operation)); } }