/// <summary>
 /// Initializes a new instance of the <see cref="AsyncCloudTableProjector"/> class.
 /// </summary>
 /// <param name="handlers">The handlers.</param>
 /// <exception cref="System.ArgumentNullException">Thrown when <paramref name="handlers"/> is <c>null</c>.</exception>
 public AsyncCloudTableProjector(CloudTableProjectionHandler[] handlers)
 {
     if (handlers == null) throw new ArgumentNullException("handlers");
     _handlers = handlers.
         GroupBy(handler => handler.Message).
         ToDictionary(@group => @group.Key, ToLinkedList);
 }
示例#2
0
        /// <summary>
        ///     Concatenates the handlers of this projection with the specified projection handler.
        /// </summary>
        /// <param name="handler">The projection handler to concatenate.</param>
        /// <returns>A <see cref="CloudTableProjection"/> containing the concatenated handlers.</returns>
        /// <exception cref="System.ArgumentNullException">Thrown when <paramref name="handler"/> is <c>null</c>.</exception>
        public CloudTableProjection Concat(CloudTableProjectionHandler handler)
        {
            if (handler == null)
                throw new ArgumentNullException("handler");

            var concatenated = new CloudTableProjectionHandler[Handlers.Length + 1];
            Handlers.CopyTo(concatenated, 0);
            concatenated[Handlers.Length] = handler;
            return new CloudTableProjection(concatenated);
        }
示例#3
0
        /// <summary>
        ///     Concatenates the handlers of this projection with the specified projection handlers.
        /// </summary>
        /// <param name="handlers">The projection handlers to concatenate.</param>
        /// <returns>A <see cref="CloudTableProjection"/> containing the concatenated handlers.</returns>
        /// <exception cref="System.ArgumentNullException">Thrown when <paramref name="handlers"/> are <c>null</c>.</exception>
        public CloudTableProjection Concat(CloudTableProjectionHandler[] handlers)
        {
            if (handlers == null)
            {
                throw new ArgumentNullException("handlers");
            }

            var concatenated = new CloudTableProjectionHandler[Handlers.Length + handlers.Length];

            Handlers.CopyTo(concatenated, 0);
            handlers.CopyTo(concatenated, Handlers.Length);
            return(new CloudTableProjection(concatenated));
        }
示例#4
0
        /// <summary>
        ///     Concatenates the handlers of this projection with the specified projection handler.
        /// </summary>
        /// <param name="handler">The projection handler to concatenate.</param>
        /// <returns>A <see cref="CloudTableProjection"/> containing the concatenated handlers.</returns>
        /// <exception cref="System.ArgumentNullException">Thrown when <paramref name="handler"/> is <c>null</c>.</exception>
        public CloudTableProjection Concat(CloudTableProjectionHandler handler)
        {
            if (handler == null)
            {
                throw new ArgumentNullException("handler");
            }

            var concatenated = new CloudTableProjectionHandler[Handlers.Length + 1];

            Handlers.CopyTo(concatenated, 0);
            concatenated[Handlers.Length] = handler;
            return(new CloudTableProjection(concatenated));
        }
 public HandlerNode(CloudTableProjectionHandler handler, HandlerNode next)
 {
     Handler = handler;
     Next = next;
 }
示例#6
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="CloudTableProjection" /> class.
 /// </summary>
 /// <param name="handlers">The handlers.</param>
 /// <exception cref="System.ArgumentNullException">Thrown when <paramref name="handlers" /> are <c>null</c>.</exception>
 public CloudTableProjection(CloudTableProjectionHandler[] handlers)
 {
     if (handlers == null) throw new ArgumentNullException("handlers");
     _handlers = handlers;
 }
示例#7
0
        /// <summary>
        ///     Concatenates the handlers of this projection with the specified projection handlers.
        /// </summary>
        /// <param name="handlers">The projection handlers to concatenate.</param>
        /// <returns>A <see cref="CloudTableProjection"/> containing the concatenated handlers.</returns>
        /// <exception cref="System.ArgumentNullException">Thrown when <paramref name="handlers"/> are <c>null</c>.</exception>
        public CloudTableProjection Concat(CloudTableProjectionHandler[] handlers)
        {
            if (handlers == null)
                throw new ArgumentNullException("handlers");

            var concatenated = new CloudTableProjectionHandler[Handlers.Length + handlers.Length];
            Handlers.CopyTo(concatenated, 0);
            handlers.CopyTo(concatenated, Handlers.Length);
            return new CloudTableProjection(concatenated);
        }
示例#8
0
 public HandlerNode(CloudTableProjectionHandler handler, HandlerNode next)
 {
     Handler = handler;
     Next    = next;
 }