Пример #1
0
        public void CanHaveSameTasqRAndSameObjectInScope()
        {
            using (var serviceProvider = services.BuildServiceProvider())
            {
                ITasqR         tasqR1   = null;
                TrackMeInScope trackMe1 = null;

                ITasqR         tasqR2   = null;
                TrackMeInScope trackMe2 = null;

                using (var scope = serviceProvider.CreateScope())
                {
                    var scopeSvc = scope.ServiceProvider;

                    tasqR1   = scopeSvc.GetService <ITasqR>();
                    trackMe1 = scopeSvc.GetService <TrackMeInScope>();

                    var cmd = new DINestedCmd1();
                    var res = tasqR1.Run(cmd);

                    Assert.AreEqual(tasqR1.ID, res[$"{nameof(DINestedCmd1Handler)}_{nameof(DINestedCmd1Handler.p_TasqR)}"]);
                    Assert.AreEqual(tasqR1.ID, res[$"{nameof(DINestedCmd2Handler)}_{nameof(DINestedCmd2Handler.p_TasqR)}"]);
                    Assert.AreEqual(tasqR1.ID, res[$"{nameof(DINestedCmd3Handler)}_{nameof(DINestedCmd3Handler.p_TasqR)}"]);

                    Assert.AreEqual(trackMe1.ID, res[$"{nameof(DINestedCmd1Handler)}_{nameof(DINestedCmd1Handler.p_TrackMe)}"]);
                    Assert.AreEqual(trackMe1.ID, res[$"{nameof(DINestedCmd2Handler)}_{nameof(DINestedCmd2Handler.p_TrackMe)}"]);
                    Assert.AreEqual(trackMe1.ID, res[$"{nameof(DINestedCmd3Handler)}_{nameof(DINestedCmd3Handler.p_TrackMe)}"]);
                }

                using (var scope = serviceProvider.CreateScope())
                {
                    var scopeSvc = scope.ServiceProvider;

                    tasqR2   = scopeSvc.GetService <ITasqR>();
                    trackMe2 = scopeSvc.GetService <TrackMeInScope>();

                    var cmd = new DINestedCmd1();
                    var res = tasqR2.Run(cmd);

                    Assert.AreEqual(tasqR2.ID, res[$"{nameof(DINestedCmd1Handler)}_{nameof(DINestedCmd1Handler.p_TasqR)}"]);
                    Assert.AreEqual(tasqR2.ID, res[$"{nameof(DINestedCmd2Handler)}_{nameof(DINestedCmd2Handler.p_TasqR)}"]);
                    Assert.AreEqual(tasqR2.ID, res[$"{nameof(DINestedCmd3Handler)}_{nameof(DINestedCmd3Handler.p_TasqR)}"]);

                    Assert.AreEqual(trackMe2.ID, res[$"{nameof(DINestedCmd1Handler)}_{nameof(DINestedCmd1Handler.p_TrackMe)}"]);
                    Assert.AreEqual(trackMe2.ID, res[$"{nameof(DINestedCmd2Handler)}_{nameof(DINestedCmd2Handler.p_TrackMe)}"]);
                    Assert.AreEqual(trackMe2.ID, res[$"{nameof(DINestedCmd3Handler)}_{nameof(DINestedCmd3Handler.p_TrackMe)}"]);
                }

                Assert.AreNotEqual(tasqR1.ID, tasqR2.ID);
                Assert.AreNotEqual(trackMe1.ID, trackMe2.ID);
            }
        }
Пример #2
0
        public override Dictionary <string, Guid> Run(DINestedCmd1 request)
        {
            Dictionary <string, Guid> retVal = new Dictionary <string, Guid>();

            var data = p_TasqR.Run(new DINestedCmd2());

            retVal[$"{nameof(DINestedCmd1Handler)}_{nameof(p_TasqR)}"]   = p_TasqR.ID;
            retVal[$"{nameof(DINestedCmd1Handler)}_{nameof(p_TrackMe)}"] = p_TrackMe.ID;

            foreach (var key in data.Keys)
            {
                retVal[key] = data[key];
            }

            return(retVal);
        }