/// <summary> /// Initializes a new instance of the <see cref="LazySession{TSessionState}"/> class. /// </summary> /// <param name="sessionOperation">Operation that holds operation part of session.</param> /// <param name="messages">Optional messages.</param> /// <param name="getOperations">Optional lazy operations getter.</param> /// <param name="executionOptions">Session execution options.</param> public LazySession( IOperation <TSessionState> sessionOperation, IMutableMessageList <Message> messages, Func <IReadOnlyCollection <IOperation> > getOperations, IExecutionOptions?executionOptions) { Operation = sessionOperation.AssertArgumentNotNull(nameof(sessionOperation)); Messages = messages.AssertArgumentNotNull(nameof(messages)); GetOperations = getOperations.AssertArgumentNotNull(nameof(getOperations)); ExecutionOptions = executionOptions; }
/// <summary> /// Initializes a new instance of the <see cref="MaterializedSession{TSessionState,TOperationState}"/> class. /// </summary> /// <param name="sessionOperation">Session state.</param> /// <param name="messages">Messages.</param> /// <param name="operations">Operations.</param> /// <param name="executionOptions">Session execution options.</param> public MaterializedSession( IOperation <TSessionState> sessionOperation, IMutableMessageList <Message> messages, IReadOnlyCollection <IOperation <TOperationState> > operations, IExecutionOptions?executionOptions) { Operation = sessionOperation.AssertArgumentNotNull(nameof(sessionOperation)); Messages = messages.AssertArgumentNotNull(nameof(messages)); Operations = operations.AssertArgumentNotNull(nameof(operations)); GetOperations = () => Operations; ExecutionOptions = executionOptions; }