예제 #1
0
        public async Task <bool> ProcessMessageAsync(MessageModel message)
        {
            var          messageType = message.MessageType;
            IList <Task> tasks       = new List <Task>();


            if ((messageType & MessageType.Email) == MessageType.Email)
            {
                IEmailProcessor processor = ActorProxy.Create <IEmailProcessor>(ActorId.CreateRandom(), applicationName: "ServiceFabricTestApp", serviceName: "EmailProcessorActorService");

                tasks.Add(processor.SendEmailAsync(message));
            }

            if ((messageType & MessageType.Push) == MessageType.Push)
            {
                IPushProcessor processor = ActorProxy.Create <IPushProcessor>(ActorId.CreateRandom(), applicationName: "ServiceFabricTestApp", serviceName: "PushProcessorActorService");

                tasks.Add(processor.SendPushAsync(message));
            }

            if ((messageType & MessageType.SMS) == MessageType.SMS)
            {
                ISMSProcessor processor = ActorProxy.Create <ISMSProcessor>(ActorId.CreateRandom(), applicationName: "ServiceFabricTestApp", serviceName: "SMSProcessorActorService");

                tasks.Add(processor.SendSMSAsync(message));
            }

            await Task.WhenAll(tasks);



            return(true);
        }