Example #1
0
		public bool Execute()
		{
			Uri fromUri = _fromUriString.ToUri("The from URI was invalid");
			Uri toUri = _toUriString.ToUri("The to URI was invalid");

			IInboundTransport fromTransport = Program.Transports.GetTransport(fromUri);
			IOutboundTransport toTransport = Program.Transports.GetTransport(toUri);

			ITextBlock text = new TextBlock()
				.BeginBlock("Move messages from " + fromUri + " to " + toUri, "");

			int moveCount = 0;
			for (int i = 0; i < _count; i++)
			{
				fromTransport.Receive(receiveContext =>
					{
						return context =>
							{
								var moveContext = new MoveMessageSendContext(context);

								toTransport.Send(moveContext);

								text.BodyFormat("Message-Id: {0}", context.MessageId);

								moveCount++;
							};
					}, TimeSpan.Zero);
			}

			_log.Info(text);
			_log.InfoFormat("{0} message{1} moved from {2} to {3}", moveCount, moveCount == 1 ? "" : "s", fromUri, toUri);

			return true;
		}
		public bool Execute()
		{
			Uri uri = _uriString.ToUri("The URI was invalid");

			IDuplexTransport transport = Program.Transports.GetTransport(uri);

			ITextBlock text = new TextBlock()
				.BeginBlock("Requeue messages to " + uri, "");


			int requeueCount = 0;
			for (int i = 0; i < _count; i++)
			{
				transport.Receive(receiveContext =>
					{
						return context =>
							{
								var moveContext = new MoveMessageSendContext(context);

								transport.Send(moveContext);

								text.BodyFormat("Message-Id: {0}", context.MessageId);

								requeueCount++;
							};
					}, TimeSpan.Zero);
			}

			_log.Info(text);
			_log.InfoFormat("{0} message{1} requeued to {2}", requeueCount, requeueCount == 1 ? "" : "s", uri);

			return true;
		}
Example #3
0
		public bool Execute()
		{
			Uri uri = _uriString.ToUri("The from URI was invalid");

			AbsolutePathName fullPath = PathName.GetAbsolutePathName(_name, Environment.CurrentDirectory);
			_log.DebugFormat("Using output path name: {0}", fullPath);

			string directoryName = Path.GetDirectoryName(fullPath.GetPath());
			if (!System.IO.Directory.Exists(directoryName))
				System.IO.Directory.CreateDirectory(directoryName);

			IInboundTransport fromTransport = Program.Transports.GetTransport(uri);

			ITextBlock text = new TextBlock()
				.BeginBlock("Save messages from URI: " + uri, "");

			int lastCount;
			int saveCount = 0;
			do
			{
				lastCount = saveCount;

				fromTransport.Receive(receiveContext =>
					{
						if (saveCount >= _count)
							return null;

						string body = Encoding.UTF8.GetString(receiveContext.BodyStream.ReadToEnd());

						text.BodyFormat("Message-Id: {0}", receiveContext.MessageId ?? "");

						WriteMessageToFile(fullPath.ToString(), receiveContext, body);

						saveCount++;

						if (_remove)
							return context => { };

						return null;
					}, TimeSpan.Zero);
			} while (_remove && saveCount < _count && saveCount != lastCount);

			_log.Info(text.ToString());

			return true;
		}