Exemplo n.º 1
0
        public void DeserializeJsonToQuery()
        {
            Container container = new Container();
            IQueryBusService queryBus = new QueryBusService(container);
            queryBus.RegisterQueryHandler<QueryA, QueryHandlerA>();

            //this string will came from  a http POST through a web service
            string queryJson = "{ \"$type\":\"Mod.Core.Test.Query.MockQuery.QueryA, Mod.Core.Test, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null\",\"StringToSearch\":\"Hector\"}";

            //The web service should deserialize the string and put it on dynamic
            JsonSerializerSettings settings = new JsonSerializerSettings
            {
                TypeNameHandling = TypeNameHandling.All,
                TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
            };

            // We are using dynamics because the contravariant restrictions to convert a generic instance to less derived type
            //  while using the generic type as a parameter for a method
            //see contravariant https://msdn.microsoft.com/en-us/library/dd469484%28v=vs.100%29.aspx
            //and covariant https://msdn.microsoft.com/en-us/library/dd469484%28v=vs.100%29.aspx

            //using the dynamic cheat, probably we can also call the method with reflection,
            //i'm not sure which options will be the
            //best for performance
            dynamic queryTmp = JsonConvert.DeserializeObject(queryJson,settings);
            var response = queryBus.SendQuery(queryTmp);
            Assert.IsTrue(response != null);
        }
Exemplo n.º 2
0
 private IQueryBusService GetQueryBus()
 {
     QueryBusService qbus = new QueryBusService(_container);
     qbus.RegisterQueryHandler<MenuQuery, MenuQueryHandler>();
     qbus.RegisterQueryHandler<RouteQuery, RouteQueryHandler>();
     return qbus;
 }
Exemplo n.º 3
0
        public void SerializeToJsonObjectResponseInQuery()
        {
            Container container = new Container();
            IQueryBusService queryBus = new QueryBusService(container);
            queryBus.RegisterQueryHandler<QueryA, QueryHandlerA>();
            var response = queryBus.SendQuery(new QueryA("Hector"));
            Assert.IsTrue(response != null);

            JsonSerializerSettings settings = new JsonSerializerSettings
            {
                TypeNameHandling = TypeNameHandling.All,
                TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
            };

            string json= JsonConvert.SerializeObject(response, settings);
            Assert.IsTrue(!String.IsNullOrEmpty(json));
        }
Exemplo n.º 4
0
 public void TestRegisterCommands()
 {
     Container container = new Container();
     IQueryBusService queryBus = new QueryBusService(container);
     queryBus.RegisterQueryHandler<QueryA, QueryHandlerA>();
     var response = queryBus.SendQuery(new QueryA("Hector"));
     Assert.IsTrue(response != null);
 }