Exemplo n.º 1
0
            private async Task HandleReceivedMessageAsync(AppDataMessage message, TypeHandledEventArgs <Byte[]> args)
            {
                if (args.Handled)
                {
                    return;
                }

                if (args.Value.TryDeserialize(out StartedAppDataMessage msg))
                {
                    args.Handled = true;

                    if (!message.Equals(msg.This))
                    {
                        return;
                    }

                    AnotherDomainHandled?.Invoke(new TypeHandledEventArgs <StartedAppDataMessage>(msg));
                }
                else if (args.Value.TryDeserialize(out AppDataMessage another))
                {
                    TypeHandledEventArgs <AppDataMessage> handler = new TypeHandledEventArgs <AppDataMessage>(another);
                    AnotherDomainStarted?.Invoke(handler);

                    await Data.SendMessageAsync(new StartedAppDataMessage(message, another, handler.Handled).Serialize()).ConfigureAwait(false);

                    args.Handled = true;
                }
            }
Exemplo n.º 2
0
            private async void TrySendMessage()
            {
                //TODO: fix
                AppDataMessage message = Data.Message;

                void HandleReceivedMsg(Object sender, TypeHandledEventArgs <Byte[]> args)
                {
                    // ReSharper disable once AsyncConverter.AsyncWait
                    HandleReceivedMessageAsync(message, args).Wait();
                }

                MessageReceived += HandleReceivedMsg;

                if (!Data.HasAnotherInstance)
                {
                    return;
                }

                await Data.SendMessageAsync(message.Serialize()).ConfigureAwait(false);
            }
Exemplo n.º 3
0
 public StartedAppDataMessage(AppDataMessage @this, AppDataMessage another, Boolean handled = false)
 {
     This    = @this;
     Another = another;
     Handled = handled;
 }