public async Task <ActionResult> Test() { var builder = new RoutingSlipBuilder(NewId.NextGuid()); builder.AddActivity("CreateGroup", new Uri("rabbitmq://localhost/vhost/operations.activities.accountinggroup.create_accounting_group")); builder.AddActivity("AssignOwnership", new Uri("rabbitmq://localhost/vhost/operations.activities.accountinggroup.assign_accounting_group_ownership")); builder.SetVariables(new { Id = Guid.NewGuid(), DisplayName = "Test", SaleStrategyId = Guid.Parse("{DDF6FE32-F6C7-42DA-0001-4FD368D0D8B9}"), OwnerUserId = Guid.Parse("{DDF6FE32-F6C7-42DA-0002-4FD368D0D8B9}") }); RoutingSlip routingSlip = builder.Build(); await _busControl.Publish <RoutingSlipCreated>(new { TrackingNumber = routingSlip.TrackingNumber, Timestamp = routingSlip.CreateTimestamp, }); await _busControl.Execute(routingSlip); return(new OkObjectResult(routingSlip.TrackingNumber)); }
public async Task <IActionResult> Get(string request) { if (string.IsNullOrEmpty(request)) { return(BadRequest()); } var builder = new RoutingSlipBuilder(NewId.NextGuid()); //1 //builder.AddActivity("DownloadImage", new Uri("rabbitmq://localhost/execute_downloadimage"), new //{ // ImageUri = new Uri("http://images.google.com/someImage.jpg") //}); //2 //builder.AddActivity("DownloadImage", new Uri("rabbitmq://localhost/execute_downloadimage")); //builder.AddVariable("ImageUri", "http://images.google.com/someImage.jpg"); //3: si el ProcessImage no depende del fin de DownloadImage builder.AddActivity("DownloadImage", new Uri("rabbitmq://localhost/execute_downloadimage")); builder.AddActivity("ProcessImage", new Uri("rabbitmq://localhost/execute_processimage")); builder.AddVariable("ImageUri", "http://images.google.com/someImage.jpg"); builder.AddActivity("FilterImage", new Uri("rabbitmq://localhost/execute_filterimage")); builder.AddVariable("WorkPath", "\\dfs\\work"); //Events //1 //builder.AddSubscription(new Uri("rabbitmq://localhost/log-events"), RoutingSlipEvents.All); //2 modo flags builder.AddSubscription(new Uri("rabbitmq://localhost/log-events"), RoutingSlipEvents.Completed | RoutingSlipEvents.Faulted); //builder.AddSubscription(new Uri("rabbitmq://localhost/log-events"), // RoutingSlipEvents.Completed, RoutingSlipEventContents.None); //3 builder.AddSubscription(new Uri("rabbitmq://localhost/log-events"), RoutingSlipEvents.Completed); builder.AddSubscription(new Uri("rabbitmq://localhost/log-events"), RoutingSlipEvents.Faulted); builder.AddSubscription(new Uri("rabbitmq://localhost/log-events"), RoutingSlipEvents.CompensationFailed); builder.AddSubscription(new Uri("rabbitmq://localhost/log-events"), RoutingSlipEvents.ActivityCompleted); builder.AddSubscription(new Uri("rabbitmq://localhost/log-events"), RoutingSlipEvents.ActivityFaulted); builder.AddSubscription(new Uri("rabbitmq://localhost/log-events"), RoutingSlipEvents.ActivityCompensated); builder.AddSubscription(new Uri("rabbitmq://localhost/log-events"), RoutingSlipEvents.ActivityCompensationFailed); // 4 custom public interface OrderProcessingCompleted //builder.AddSubscription(new Uri("rabbitmq://localhost/order-events"), // RoutingSlipEvents.Completed, // x => x.Send<OrderProcessingCompleted>(new // { // OrderId = "BFG-9000", // OrderApproval = "ComeGetSome" // })); var routingSlip = builder.Build(); await _bus.Execute(routingSlip); return(Ok(new { routingSlip.TrackingNumber })); }
public async Task <Guid> StartAsync() { var queueUri = new Uri(_busControl.Address, Assembly.GetEntryAssembly().GenerateRoutingSlipFailureQueueName()); _routingSlip.AddSubscription(queueUri, RoutingSlipEvents.Faulted | RoutingSlipEvents.ActivityCompensationFailed | RoutingSlipEvents.ActivityFaulted | RoutingSlipEvents.CompensationFailed); await _busControl.Execute(_routingSlip.Build()); return(_routingSlip.TrackingNumber); }
public async Task <Guid> PublishInsertCoding(Coding coding) { var builder = new RoutingSlipBuilder(NewId.NextGuid()); builder.AddActivity("Core_Coding_Insert", new Uri($"{RabbitMqConstants.RabbitMqUri}Core_Coding_Insert")); builder.AddActivity("Kachar_Coding_Insert", new Uri($"{RabbitMqConstants.RabbitMqUri}Kachar_Coding_Insert")); builder.AddActivity("Rahavard_Coding_Insert", new Uri($"{RabbitMqConstants.RabbitMqUri}Rahavard_Coding_Insert")); builder.SetVariables(coding); var routingSlip = builder.Build(); await _bus.Execute(routingSlip); return(routingSlip.TrackingNumber); }
public async Task StartAsync(CancellationToken cancellationToken) { await _bus.StartAsync(cancellationToken).ConfigureAwait(false); var builder = new RoutingSlipBuilder(Guid.NewGuid()); builder.AddActivity("ScopedActivity", new Uri("queue:scoped_execute")); await _bus.Execute(builder.Build()); var endpoint = await _bus.GetSendEndpoint(new Uri("queue:scoped")); await endpoint.Send <ITestEvent>(new { }); }
static void Main() { ConfigureLogger(); // MassTransit to use Log4Net Log4NetLogger.Use(); IBusControl busControl = CreateBus(); busControl.StartAsync().Wait(); string validateQueueName = ConfigurationManager.AppSettings["ValidateActivityQueue"]; Uri validateAddress = _host.GetSendAddress(validateQueueName); string retrieveQueueName = ConfigurationManager.AppSettings["RetrieveActivityQueue"]; Uri retrieveAddress = _host.GetSendAddress(retrieveQueueName); try { for (;;) { Console.Write("Enter an address (quit exits): "); string requestAddress = Console.ReadLine(); if (requestAddress == "quit") { break; } if (string.IsNullOrEmpty(requestAddress)) { requestAddress = "http://www.microsoft.com/index.html"; } int limit = 1; if (requestAddress.All(x => char.IsDigit(x) || char.IsPunctuation(x))) { string[] values = requestAddress.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); requestAddress = values[0]; if (values.Length > 1) { limit = int.Parse(values[1]); Console.WriteLine("Sending {0}", limit); } } switch (requestAddress) { case "0": requestAddress = "http://www.microsoft.com/index.html"; break; case "1": requestAddress = "http://i.imgur.com/Iroma7d.png"; break; case "2": requestAddress = "http://i.imgur.com/NK8eZUe.jpg"; break; } Uri requestUri; try { requestUri = new Uri(requestAddress); } catch (UriFormatException) { Console.WriteLine("The URL entered is invalid: " + requestAddress); continue; } IEnumerable <Task> tasks = Enumerable.Range(0, limit).Select(x => Task.Run(async() => { var builder = new RoutingSlipBuilder(NewId.NextGuid()); builder.AddActivity("Validate", validateAddress); builder.AddActivity("Retrieve", retrieveAddress); builder.SetVariables(new { RequestId = NewId.NextGuid(), Address = requestUri, }); RoutingSlip routingSlip = builder.Build(); await busControl.Publish <RoutingSlipCreated>(new { TrackingNumber = routingSlip.TrackingNumber, Timestamp = routingSlip.CreateTimestamp, }); await busControl.Execute(routingSlip); })); Task.WaitAll(tasks.ToArray()); } } catch (Exception ex) { Console.WriteLine("Exception!!! OMG!!! {0}", ex); Console.ReadLine(); } finally { busControl.Stop(); } }
public async Task Run() { await Console.Out.WriteLineAsync("Sending the routing slip..."); await _busControl.Execute(VoluntarilyCloseAccount("username_bob")); }