Beispiel #1
0
        static async Task ContextCreation(ContextProvider provider)
        {
            // context can be created from connection string, connection or transaction
            // all these types of context implement the same interface ICommandCreator

            // context from connection string
            var context1 = provider.CreateContext(connString);

            // context from connection
            var connection = GetOpenConnection();
            var context2   = provider.CreateContext(connection);

            // or
            context1.UsingConnection(connectionContext =>
            {
                // doing something with connectionContext (attached to opened connection)
                // for example using transaction
                connectionContext.UsingTransaction(transactionContext =>
                {
                    // doing something with transactionContext (attached to active transaction)
                });
            });
            // or asynchronously
            await context1.UsingConnectionAsync(async connectionContext =>
            {
                // doing something with connectionContext (attached to opened connection)
                // for example using transaction
                await connectionContext.UsingTransactionAsync(async transactionContext =>
                {
                    // doing something with transactionContext (attached to active transaction)
                });
            });

            // context from transaction
            var transaction = connection.BeginTransaction();
            var context3    = provider.CreateContext(transaction);

            // or
            context1.UsingTransaction(transactionContext =>
            {
                // doing something with transactionContext (attached to active transaction)
            });
            // or asynchronously
            await context1.UsingTransactionAsync(async transactionContext =>
            {
                // doing something with transactionContext (attached to active transaction)
            });
        }
Beispiel #2
0
        public FlowManagerTestsBase()
        {
            SchedulerExtension = Substitute.For <ISchedulerExtension>();
            BucketExtension    = Substitute.For <IBucketExtension>();
            ArtificialIntelligenceExtension = Substitute.For <IArtificialIntelligenceExtension>();
            EventTrackExtension             = Substitute.For <IEventTrackExtension>();
            BroadcastExtension = Substitute.For <IBroadcastExtension>();
            ContactExtension   = Substitute.For <IContactExtension>();
            HelpDeskExtension  = Substitute.For <IHelpDeskExtension>();
            TunnelExtension    = Substitute.For <ITunnelExtension>();
            Sender             = Substitute.For <ISender>();
            StateManager       = Substitute.For <IStateManager>();
            ContextProvider    = Substitute.For <IContextProvider>();
            Context            = Substitute.For <IContext>();
            Logger             = new LoggerConfiguration().CreateLogger();
            ContextProvider
            .CreateContext(Arg.Any <Identity>(), Arg.Any <Identity>(), Arg.Any <LazyInput>(), Arg.Any <Flow>())
            .Returns(Context);
            UserIdentity        = new Identity("user", "domain");
            ApplicationIdentity = new Identity("application", "domain");
            Application         = new Application()
            {
                Identifier = ApplicationIdentity.Name,
                Domain     = ApplicationIdentity.Domain
            };
            Message = new Message()
            {
                From = UserIdentity.ToNode(),
                To   = ApplicationIdentity.ToNode()
            };
            Context.UserIdentity.Returns(UserIdentity);
            Input = new LazyInput(
                Message,
                UserIdentity,
                new BuilderConfiguration(),
                Substitute.For <IDocumentSerializer>(),
                Substitute.For <IEnvelopeSerializer>(),
                ArtificialIntelligenceExtension,
                CancellationToken);
            Context.Input.Returns(Input);

            TraceProcessor    = Substitute.For <ITraceProcessor>();
            UserOwnerResolver = Substitute.For <IUserOwnerResolver>();
            UserOwnerResolver
            .GetUserOwnerIdentitiesAsync(Arg.Any <Message>(), Arg.Any <BuilderConfiguration>(), Arg.Any <CancellationToken>())
            .Returns(new UserOwner(UserIdentity, ApplicationIdentity));
        }
 public FlowManagerTestsBase()
 {
     BucketExtension = Substitute.For <IBucketExtension>();
     ArtificialIntelligenceExtension = Substitute.For <IArtificialIntelligenceExtension>();
     EventTrackExtension             = Substitute.For <IEventTrackExtension>();
     BroadcastExtension = Substitute.For <IBroadcastExtension>();
     ContactExtension   = Substitute.For <IContactExtension>();
     Sender             = Substitute.For <ISender>();
     StateManager       = Substitute.For <IStateManager>();
     ContextProvider    = Substitute.For <IContextProvider>();
     Context            = Substitute.For <IContext>();
     Logger             = Substitute.For <ILogger>();
     ContextProvider
     .CreateContext(Arg.Any <Identity>(), Arg.Any <LazyInput>(), Arg.Any <Flow>())
     .Returns(Context);
     User = new Identity("user", "domain");
     Context.User.Returns(User);
 }
Beispiel #4
0
 public UnitOfWork(ContextProvider contextProvider)
 {
     _contextProvider = contextProvider;
     _contextProvider.CreateContext();
 }