Example #1
0
        public override Task <EventInvocationsResponse> GetEventInvocations(EventInvocationsQuery request, ServerCallContext context)
        {
            EventInvocationsResponse reply = new()
            {
                EventId = request.EventId,
            };
            var invocations = EventRegistrar.GetInvocations(request.EventId);

            if (invocations is null)
            {
                reply.ErrorMessages.Add("Event was not registered");
            }
            else
            {
                reply.EventInvocations.AddRange(
                    invocations.Select(
                        array =>
                {
                    EventInvocation rv = new();
                    rv.Parameters.AddRange(array.Select(item => GetItemString(item)));
                    return(rv);
                }));
            }


            return(Task.FromResult(reply));

            string GetItemString(object item)
            {
                return(Serializer.Serialize(item.GetType(), item)
                       ?? item?.ToString()
                       ?? item?.GetType().FullName
                       ?? "<null>");
            }
        }
Example #2
0
        public override Task <EventUnregisterResponse> UnregisterForEvent(EventUnregisterRequest request, ServerCallContext context)
        {
            EventUnregisterResponse reply = new();

            if (!EventRegistrar.Unregister(request.EventId))
            {
                reply.ErrorMessages.Add("Failed to unregister event");
            }
            return(Task.FromResult(reply));
        }
        static void Main(string[] args)
        {
            var manager = new MailManager();
            var fax     = new Fax();

            EventRegistrar.RegisterEvent(manager, "NewMail", fax, "FaxMsg");

            manager.SimulateNewMail("Minsk", "Riga", "Letter");

            Console.ReadKey();
        }
        /// <summary>
        /// Indicates the message bus configuration will have the specified service provider.
        /// </summary>
        /// <param name="value">The configured <see cref="IServiceProvider">service provider</see>.</param>
        /// <returns>The original <see cref="MessageBusConfigurationBuilder"/> instance.</returns>
        public virtual MessageBusConfigurationBuilder HasServiceProvider(IServiceProvider value)
        {
            Arg.NotNull(value, nameof(value));
            Contract.Ensures(Contract.Result <MessageBusConfiguration>() != null);

            ServiceProvider = value;

            if (!CommandRegistrarIsOverriden)
            {
                CommandRegistrar = new CommandRegistrar(value);
            }

            if (!EventReceiverRegistrarIsOverriden)
            {
                EventRegistrar = new EventRegistrar(value);
            }

            return(this);
        }
Example #5
0
        public override async Task <EventRegistrationResponse> RegisterForEvent(EventRegistrationRequest request, ServerCallContext context)
        {
            EventRegistrationResponse reply = new()
            {
                EventId = Guid.NewGuid().ToString()
            };
            await Application.Dispatcher.InvokeAsync(() =>
            {
                DependencyObject?element = GetCachedElement <DependencyObject>(request.ElementId);
                if (element is null)
                {
                    reply.ErrorMessages.Add("Could not find element");
                    return;
                }

                if (element.GetType().GetEvent(request.EventName) is { } eventInfo)
                {
                    EventRegistrar.Regsiter(reply.EventId, eventInfo, element);
                }
            });

            return(reply);
        }