Example #1
0
 private static async Task Inheritance(ILogger logger, DeadLetterObject deadletter)
 {
     var derived = new GreeterObject(logger);
     Console.WriteLine("Method call message type");
     await deadletter.Send(derived, new GreetMessage());
     Console.WriteLine();
 }
Example #2
0
        private static Task FireAndForget(ILogger logger, DeadLetterObject deadLetter)
        {
            Console.WriteLine("Sending async message to deadletter");
            var firstRealObject = new RealObject(logger);

            return(firstRealObject.Send(deadLetter, new PingMessage()));
        }
Example #3
0
 private static async Task  InheritanceWithOverridenMethod(ILogger logger, DeadLetterObject deadletter)
 {
     Console.WriteLine("Method overloaded in derived type");
     var politeGreeter = new PoliteGreeterObject(logger);
     await deadletter.Send(politeGreeter, new GreetMessage());
     Console.WriteLine();
 }
Example #4
0
        private static async Task  InheritanceWithOverridenMethod(ILogger logger, DeadLetterObject deadletter)
        {
            Console.WriteLine("Method overloaded in derived type");
            var politeGreeter = new PoliteGreeterObject(logger);
            await deadletter.Send(politeGreeter, new GreetMessage());

            Console.WriteLine();
        }
Example #5
0
        private static async Task Inheritance(ILogger logger, DeadLetterObject deadletter)
        {
            var derived = new GreeterObject(logger);

            Console.WriteLine("Method call message type");
            await deadletter.Send(derived, new GreetMessage());

            Console.WriteLine();
        }
Example #6
0
 private static async Task UseMixinsToCreateFinalObject(ILogger logger)
 {
     Console.WriteLine("Create object using mixins and call methods");
     var obj = new RealObject();
     obj.Mixin<SquareDrawerObject>();
     obj.Mixin<TreeDrawerObject>();
     var deadletter = new DeadLetterObject(logger);
     await deadletter.Send(obj, new DrawTreeMessage(3));
     await deadletter.Send(obj, new DrawSquareMessage(3));
 }
Example #7
0
 private static async Task ChangeMethodAtRuntime(ILogger logger, DeadLetterObject deadletter)
 {
     Console.WriteLine("Define method at runtime using dynamic object");
     var dynamicObject = new DynamicObject(logger);
     Console.WriteLine("Define method at runtime [1st call - undefined]");
     await deadletter.Send(dynamicObject, new GreetMessage());
     Console.WriteLine("Define method at runtime [2nd call]");
     dynamicObject.AddOrUpdateMethod<GreetMessage>(new Method(async sender => await Task.Run( () => Console.WriteLine("Howdy!"))));
     await deadletter.Send(dynamicObject, new GreetMessage());
     Console.WriteLine();
 }
Example #8
0
        private static async Task Examples()
        {
            var logger = new ConsoleLogger(ConsoleLogger.LoggingLevel.Off);
            var deadletter = new DeadLetterObject(logger);

            await CallOneObjectFromAnother(logger);
            await Inheritance(logger, deadletter);
            await InheritanceWithOverridenMethod(logger, deadletter);
            await ChangeMethodAtRuntime(logger, deadletter);
            await UseMixinsToCreateFinalObject(logger);
            FireAndForget(logger, new DeadLetterObject(new ConsoleLogger(ConsoleLogger.LoggingLevel.All)));
        }
Example #9
0
        private static async Task UseMixinsToCreateFinalObject(ILogger logger)
        {
            Console.WriteLine("Create object using mixins and call methods");
            var obj = new RealObject();

            obj.Mixin <SquareDrawerObject>();
            obj.Mixin <TreeDrawerObject>();
            var deadletter = new DeadLetterObject(logger);
            await deadletter.Send(obj, new DrawTreeMessage(3));

            await deadletter.Send(obj, new DrawSquareMessage(3));
        }
Example #10
0
        private static async Task Examples()
        {
            var logger     = new ConsoleLogger(ConsoleLogger.LoggingLevel.Off);
            var deadletter = new DeadLetterObject(logger);

            await CallOneObjectFromAnother(logger);
            await Inheritance(logger, deadletter);
            await InheritanceWithOverridenMethod(logger, deadletter);
            await ChangeMethodAtRuntime(logger, deadletter);
            await UseMixinsToCreateFinalObject(logger);

            FireAndForget(logger, new DeadLetterObject(new ConsoleLogger(ConsoleLogger.LoggingLevel.All)));
        }
Example #11
0
        private static async Task ChangeMethodAtRuntime(ILogger logger, DeadLetterObject deadletter)
        {
            Console.WriteLine("Define method at runtime using dynamic object");
            var dynamicObject = new DynamicObject(logger);

            Console.WriteLine("Define method at runtime [1st call - undefined]");
            await deadletter.Send(dynamicObject, new GreetMessage());

            Console.WriteLine("Define method at runtime [2nd call]");
            dynamicObject.AddOrUpdateMethod <GreetMessage>(new Method(async sender => await Task.Run(() => Console.WriteLine("Howdy!"))));
            await deadletter.Send(dynamicObject, new GreetMessage());

            Console.WriteLine();
        }
Example #12
0
 private static Task FireAndForget(ILogger logger, DeadLetterObject deadLetter)
 {
     Console.WriteLine("Sending async message to deadletter");
     var firstRealObject = new RealObject(logger);
     return firstRealObject.Send(deadLetter, new PingMessage());
 }