-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathExampleCommandHandler.cs
More file actions
135 lines (128 loc) · 6.3 KB
/
ExampleCommandHandler.cs
File metadata and controls
135 lines (128 loc) · 6.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// =================================================================================================================================
// Copyright (c) RapidField LLC. Licensed under the MIT License. See LICENSE.txt in the project root for license information.
// =================================================================================================================================
using RapidField.SolidInstruments.Command;
using RapidField.SolidInstruments.DataAccess;
using RapidField.SolidInstruments.DataAccess.EntityFramework;
using System;
using System.Data;
namespace RapidField.SolidInstruments.Example.DatabaseModel
{
/// <summary>
/// Processes Example data access commands.
/// </summary>
/// <typeparam name="TCommand">
/// The type of the data access command that is processed by the handler.
/// </typeparam>
public abstract class ExampleCommandHandler<TCommand> : EntityFrameworkCommandHandler<ExampleContext, TCommand>
where TCommand : class, IDataAccessCommand
{
/// <summary>
/// Initializes a new instance of the <see cref="ExampleCommandHandler{TCommand}" /> class.
/// </summary>
/// <param name="mediator">
/// A processing intermediary that is used to process sub-commands.
/// </param>
/// <param name="repositoryFactory">
/// The factory that produces data access repositories for the handler.
/// </param>
/// <exception cref="ArgumentNullException">
/// <paramref name="mediator" /> is <see langword="null" /> -or- <paramref name="repositoryFactory" /> is
/// <see langword="null" />.
/// </exception>
protected ExampleCommandHandler(ICommandMediator mediator, ExampleRepositoryFactory repositoryFactory)
: base(mediator, repositoryFactory)
{
return;
}
/// <summary>
/// Initializes a new instance of the <see cref="ExampleCommandHandler{TCommand}" /> class.
/// </summary>
/// <param name="mediator">
/// A processing intermediary that is used to process sub-commands.
/// </param>
/// <param name="repositoryFactory">
/// The factory that produces data access repositories for the handler.
/// </param>
/// <param name="isolationLevel">
/// The isolation level for the transaction, or <see cref="IsolationLevel.Unspecified" /> to use the database default. The
/// default value is <see cref="IsolationLevel.Unspecified" />.
/// </param>
/// <exception cref="ArgumentNullException">
/// <paramref name="mediator" /> is <see langword="null" /> -or- <paramref name="repositoryFactory" /> is
/// <see langword="null" />.
/// </exception>
protected ExampleCommandHandler(ICommandMediator mediator, ExampleRepositoryFactory repositoryFactory, IsolationLevel isolationLevel)
: base(mediator, repositoryFactory, isolationLevel)
{
return;
}
/// <summary>
/// Releases all resources consumed by the current <see cref="ExampleCommandHandler{TCommand}" />.
/// </summary>
/// <param name="disposing">
/// A value indicating whether or not managed resources should be released.
/// </param>
protected override void Dispose(Boolean disposing) => base.Dispose(disposing);
}
/// <summary>
/// Processes Example data access commands.
/// </summary>
/// <typeparam name="TCommand">
/// The type of the data access command that is processed by the handler.
/// </typeparam>
/// <typeparam name="TResult">
/// The type of the result that is emitted by the handler when processing a data access command.
/// </typeparam>
public abstract class ExampleCommandHandler<TCommand, TResult> : EntityFrameworkCommandHandler<ExampleContext, TCommand, TResult>
where TCommand : class, IDataAccessCommand<TResult>
{
/// <summary>
/// Initializes a new instance of the <see cref="ExampleCommandHandler{TCommand, TResult}" /> class.
/// </summary>
/// <param name="mediator">
/// A processing intermediary that is used to process sub-commands.
/// </param>
/// <param name="repositoryFactory">
/// The factory that produces data access repositories for the handler.
/// </param>
/// <exception cref="ArgumentNullException">
/// <paramref name="mediator" /> is <see langword="null" /> -or- <paramref name="repositoryFactory" /> is
/// <see langword="null" />.
/// </exception>
protected ExampleCommandHandler(ICommandMediator mediator, ExampleRepositoryFactory repositoryFactory)
: base(mediator, repositoryFactory)
{
return;
}
/// <summary>
/// Initializes a new instance of the <see cref="ExampleCommandHandler{TCommand, TResult}" /> class.
/// </summary>
/// <param name="mediator">
/// A processing intermediary that is used to process sub-commands.
/// </param>
/// <param name="repositoryFactory">
/// The factory that produces data access repositories for the handler.
/// </param>
/// <param name="isolationLevel">
/// The isolation level for the transaction, or <see cref="IsolationLevel.Unspecified" /> to use the database default. The
/// default value is <see cref="IsolationLevel.Unspecified" />.
/// </param>
/// <exception cref="ArgumentNullException">
/// <paramref name="mediator" /> is <see langword="null" /> -or- <paramref name="repositoryFactory" /> is
/// <see langword="null" />.
/// </exception>
protected ExampleCommandHandler(ICommandMediator mediator, ExampleRepositoryFactory repositoryFactory, IsolationLevel isolationLevel)
: base(mediator, repositoryFactory, isolationLevel)
{
return;
}
/// <summary>
/// Releases all resources consumed by the current <see cref="ExampleCommandHandler{TCommand, TResult}" />.
/// </summary>
/// <param name="disposing">
/// A value indicating whether or not managed resources should be released.
/// </param>
protected override void Dispose(Boolean disposing) => base.Dispose(disposing);
}
}