/// <summary> /// This is the main entry point for your service instance. /// </summary> /// <param name="cancellationToken">Canceled when Service Fabric needs to shut down this service instance.</param> //protected override async Task RunAsync(CancellationToken cancellationToken) //{ // // TODO: Replace the following sample code with your own logic // // or remove this RunAsync override if it's not needed in your service. // long iterations = 0; // while (true) // { // cancellationToken.ThrowIfCancellationRequested(); // ServiceEventSource.Current.ServiceMessage(this.Context, "Working-{0}", ++iterations); // await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken); // } //} private async Task ProcessMessageAsync(Message message, CancellationToken token) { ServiceEventSource.Current.ServiceMessage(this.Context, "MESSAGE RECIEVED!!!", message); var model = JsonSerializer.Deserialize <MessageModel>(message.Body); IMessageProcessor actor = ActorProxy.Create <IMessageProcessor>(ActorId.CreateRandom(), new Uri("fabric:/ServiceFabricTestApp/MessageProcessorActorService")); var result = await actor.ProcessMessageAsync(model); if (result) { ServiceEventSource.Current.ServiceMessage(this.Context, $"Message {model.Title} has been processed successfully", message); await _serviceBusService.CompleteAsync(message); } else { ServiceEventSource.Current.ServiceMessage(this.Context, $"An error ocurred while processing the message with Id: {message.MessageId} and will be deadlettered", message); await _serviceBusService.DeadLetterAsync(message, "result was false"); } }