public override INode Filter(ref INodeResolver resolver, ref INodeAddress address, ref NodeType nodeType, out bool canCache)
		{
			string value;

			canCache = false;

			if (this.QueryKey == null)
			{
				return null;
			}
			else
			{
				try
				{
					if (address.QueryValues[this.QueryKey] == null)
					{
						return null;
					}

					value = (string)address.QueryValues[this.QueryKey];
				}
				catch (KeyNotFoundException)
				{
					return null;
				}
			}

			if (nodeType.Equals(NodeType.File))
			{
				canCache = true;

				var query = StringUriUtils.BuildQuery
				(
					address.QueryValues,
					pair => pair.Key.Equals(this.QueryKey, StringComparison.CurrentCultureIgnoreCase)
				);

				var uri = address.AbsolutePath + "?" + query;

				var file = resolver.ResolveFile(uri);
				var service = (ITempIdentityFileService)file.GetService(new TempIdentityFileServiceType(value));

				canCache = true;

				return service.GetTempFile();
			}
					
			return null;
		}
Beispiel #2
0
        public override INode Filter(ref INodeResolver resolver, ref INodeAddress address, ref NodeType nodeType, out bool canCache)
        {
            string value;

            canCache = false;

            if (this.QueryKey == null)
            {
                return(null);
            }
            else
            {
                try
                {
                    if (address.QueryValues[this.QueryKey] == null)
                    {
                        return(null);
                    }

                    value = (string)address.QueryValues[this.QueryKey];
                }
                catch (KeyNotFoundException)
                {
                    return(null);
                }
            }

            if (nodeType.Equals(NodeType.File))
            {
                canCache = true;

                var query = StringUriUtils.BuildQuery
                            (
                    address.QueryValues,
                    pair => pair.Key.Equals(this.QueryKey, StringComparison.CurrentCultureIgnoreCase)
                            );

                var uri = address.AbsolutePath + "?" + query;

                var file    = resolver.ResolveFile(uri);
                var service = (ITempIdentityFileService)file.GetService(new TempIdentityFileServiceType(value));

                canCache = true;

                return(service.GetTempFile());
            }

            return(null);
        }
 public static Predicate <INode> ByNodeType(NodeType nodeType)
 {
     return(ByNodeType(value => value.Equals(NodeType.Any) || nodeType.Equals(NodeType.Any) || nodeType.Equals(value)));
 }
		public static Predicate<INode> ByNodeType(NodeType nodeType)
		{
			return ByNodeType(value => value.Equals(NodeType.Any) || nodeType.Equals(NodeType.Any) || nodeType.Equals(value));
		}