Projekt

Obecné

Profil

« Předchozí | Další » 

Revize e54b06d6

Přidáno uživatelem Dominik Chlouba před téměř 4 roky(ů)

Initialized email service provider with test project

Zobrazit rozdíly:

Leuze.sln
35 35
EndProject
36 36
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Leuze.Tests.Core.Domain", "tests\Core\Leuze.Tests.Core.Domain\Leuze.Tests.Core.Domain.csproj", "{8ECAEA01-61F3-402D-B94E-E54FC0C94C8E}"
37 37
EndProject
38
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Leuze.Core.Infrastructure.Email", "src\Core\Infrastructure\Leuze.Core.Infrastructure.Email\Leuze.Core.Infrastructure.Email.csproj", "{D3447C53-B2CC-4438-A41A-9ADD66B51C43}"
39
EndProject
40
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Leuze.Tests.Core.Infrastructure.Email", "tests\Core\Leuze.Tests.Core.Infrastructure.Email\Leuze.Tests.Core.Infrastructure.Email.csproj", "{443BC0B0-F759-47CF-939C-D653C885E94A}"
41
EndProject
38 42
Global
39 43
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
40 44
		Debug|Any CPU = Debug|Any CPU
......
73 77
		{8ECAEA01-61F3-402D-B94E-E54FC0C94C8E}.Debug|Any CPU.Build.0 = Debug|Any CPU
74 78
		{8ECAEA01-61F3-402D-B94E-E54FC0C94C8E}.Release|Any CPU.ActiveCfg = Release|Any CPU
75 79
		{8ECAEA01-61F3-402D-B94E-E54FC0C94C8E}.Release|Any CPU.Build.0 = Release|Any CPU
80
		{D3447C53-B2CC-4438-A41A-9ADD66B51C43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
81
		{D3447C53-B2CC-4438-A41A-9ADD66B51C43}.Debug|Any CPU.Build.0 = Debug|Any CPU
82
		{D3447C53-B2CC-4438-A41A-9ADD66B51C43}.Release|Any CPU.ActiveCfg = Release|Any CPU
83
		{D3447C53-B2CC-4438-A41A-9ADD66B51C43}.Release|Any CPU.Build.0 = Release|Any CPU
84
		{443BC0B0-F759-47CF-939C-D653C885E94A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
85
		{443BC0B0-F759-47CF-939C-D653C885E94A}.Debug|Any CPU.Build.0 = Debug|Any CPU
86
		{443BC0B0-F759-47CF-939C-D653C885E94A}.Release|Any CPU.ActiveCfg = Release|Any CPU
87
		{443BC0B0-F759-47CF-939C-D653C885E94A}.Release|Any CPU.Build.0 = Release|Any CPU
76 88
	EndGlobalSection
77 89
	GlobalSection(SolutionProperties) = preSolution
78 90
		HideSolutionNode = FALSE
......
90 102
		{D037B7D3-CA28-4EBD-9E2F-3F3D347950CF} = {C5588326-929D-42B3-912B-9D838373B48E}
91 103
		{B74BED5E-F175-4A6E-B4AC-8625E0E4E287} = {C5588326-929D-42B3-912B-9D838373B48E}
92 104
		{8ECAEA01-61F3-402D-B94E-E54FC0C94C8E} = {B74BED5E-F175-4A6E-B4AC-8625E0E4E287}
105
		{D3447C53-B2CC-4438-A41A-9ADD66B51C43} = {6A0F1F61-D0EB-4132-B722-5787D7046CC0}
106
		{443BC0B0-F759-47CF-939C-D653C885E94A} = {B74BED5E-F175-4A6E-B4AC-8625E0E4E287}
93 107
	EndGlobalSection
94 108
	GlobalSection(ExtensibilityGlobals) = postSolution
95 109
		SolutionGuid = {849C3668-1CB9-4F98-ADFA-A71F5629384C}
docs/Leuze.Core.Application.xml
1 1
<?xml version="1.0"?>
2 2
<doc>
3 3
    <assembly>
4
        <name>Leuze.Core.Application</name>
4
        <name>Leuze.Core.Application.UI</name>
5 5
    </assembly>
6 6
    <members>
7
        <member name="T:Leuze.Core.Application.Authentication.DomainUserProvider">
8
            <inheritdoc />
9
        </member>
10
        <member name="T:Leuze.Core.Application.Authentication.IApplicationUserProvider">
11
            <summary>
12
                An application service that provides currently authenticated user from presentation layer such as ASP.NET application or Console App.
13
            </summary>
14
        </member>
15
        <member name="T:Leuze.Core.Application.Behaviors.ValidationBehavior`2">
16
            <summary>
17
            
18
            </summary>
19
            <typeparam name="TRequest"></typeparam>
20
            <typeparam name="TResponse"></typeparam>
21
        </member>
22
        <member name="M:Leuze.Core.Application.Behaviors.ValidationBehavior`2.#ctor(System.Collections.Generic.IEnumerable{FluentValidation.IValidator{`0}})">
23
            <summary>
24
            
25
            </summary>
26
            <param name="validators"></param>
27
        </member>
28
        <member name="M:Leuze.Core.Application.Behaviors.ValidationBehavior`2.Handle(`0,System.Threading.CancellationToken,MediatR.RequestHandlerDelegate{`1})">
29
            <summary>
30
            
31
            </summary>
32
            <param name="request"></param>
33
            <param name="cancellationToken"></param>
34
            <param name="next"></param>
35
            <returns></returns>
36
        </member>
37
        <member name="T:Leuze.Core.Application.Configuration.ApplicationConfiguration">
38
            <summary>
39
            
40
            </summary>
41
        </member>
42
        <member name="P:Leuze.Core.Application.Configuration.ApplicationConfiguration.Priority">
43
            <summary>
44
            
45
            </summary>
46
        </member>
47
        <member name="M:Leuze.Core.Application.Configuration.ApplicationConfiguration.Execute(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.IServiceProvider)">
48
            <summary>
49
            
50
            </summary>
51
            <param name="applicationBuilder"></param>
52
            <param name="serviceProvider"></param>
53
        </member>
54
        <member name="T:Leuze.Core.Application.Configuration.ApplicationServices">
55
            <summary>
56
            
57
            </summary>
58
        </member>
59
        <member name="P:Leuze.Core.Application.Configuration.ApplicationServices.Priority">
60
            <summary>
61
            
62
            </summary>
63
        </member>
64
        <member name="M:Leuze.Core.Application.Configuration.ApplicationServices.Execute(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.IServiceProvider)">
65
            <summary>
66
            
67
            </summary>
68
            <param name="services"></param>
69
            <param name="serviceProvider"></param>
70
        </member>
71
        <member name="T:Leuze.Core.Application.Configuration.AppSettings">
72
            <summary>
73
                A wrapper class for AppSettings configuration on application level.
74
            </summary>
75
        </member>
76
        <member name="P:Leuze.Core.Application.Configuration.AppSettings.DatabaseConnection">
77
            <summary>
78
                A database connection section.
79
            </summary>
80
        </member>
81
        <member name="P:Leuze.Core.Application.Configuration.AppSettings.Encryption">
82
            <summary>
83
            
84
            </summary>
85
        </member>
86
        <member name="T:Leuze.Core.Application.Configuration.AppSettings.EncryptionSection">
87
            <summary>
88
            
89
            </summary>
90
        </member>
91
        <member name="P:Leuze.Core.Application.Configuration.AppSettings.EncryptionSection.Key">
92
            <summary>
93
            
94
            </summary>
95
        </member>
96
        <member name="P:Leuze.Core.Application.Configuration.AppSettings.EncryptionSection.IV">
97
            <summary>
98
            
99
            </summary>
100
        </member>
101
        <member name="T:Leuze.Core.Application.Configuration.AppSettings.DatabaseConnectionSection">
102
            <summary>
103
                A wrapper class for <see cref="T:Leuze.Core.Application.Configuration.AppSettings" /> Database connection section.
104
            </summary>
105
        </member>
106
        <member name="P:Leuze.Core.Application.Configuration.AppSettings.DatabaseConnectionSection.ConnectionString">
107
            <summary>
108
                Specifies connection string for database.
109
            </summary>
110
        </member>
111
        <member name="P:Leuze.Core.Application.Configuration.AppSettings.DatabaseConnectionSection.IsInMemory">
112
            <summary>
113
                Sets whether the database connection should be done in memory.
114
            </summary>
115
        </member>
116
        <member name="T:Leuze.Core.Application.CQRS.IBaseRequest">
117
            <summary>
118
            Base request that is sent to messaging bus using <see cref="T:MediatR.Mediator"/>.
119
            </summary>
120
        </member>
121
        <member name="T:Leuze.Core.Application.CQRS.IBaseRequest`1">
122
            <summary>
123
            Base generic request that is sent to messaging bus using <see cref="T:MediatR.Mediator"/>.
124
            </summary>
125
            <typeparam name="TResult">The result of the request.</typeparam>
126
        </member>
127
        <member name="T:Leuze.Core.Application.CQRS.IBaseRequestHandler`1">
128
            <summary>
129
            Base request handler that returns default request response.
130
            </summary>
131
            <typeparam name="TRequest">The request that should be handled.</typeparam>
132
        </member>
133
        <member name="T:Leuze.Core.Application.CQRS.IBaseRequestHandler`2">
134
            <summary>
135
            Base request handler that returns default request response.
136
            </summary>
137
            <typeparam name="TRequest">The request that should be handled.</typeparam>
138
            <typeparam name="TResult">The result of the request.</typeparam>
139
        </member>
140
        <member name="T:Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList">
141
            <summary>
142
            
143
            </summary>
144
        </member>
145
        <member name="T:Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList.Query">
146
            <summary>
147
            
148
            </summary>
149
        </member>
150
        <member name="M:Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList.Query.#ctor(Leuze.Core.Application.Models.Controllers.PagedModel)">
151
            <summary>
152
            
153
            </summary>
154
        </member>
155
        <member name="T:Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList.Response">
156
            <summary>
157
            
158
            </summary>
159
        </member>
160
        <member name="M:Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList.Response.#ctor(System.Collections.Generic.IList{Leuze.Core.Domain.Domains.Identity.DTOs.PermissionItem},System.Int32,System.Int32,System.Int32)">
161
            <summary>
162
            
163
            </summary>
164
        </member>
165
        <member name="T:Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList.Handler">
166
            <summary>
167
            
168
            </summary>
169
        </member>
170
        <member name="M:Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList.Handler.#ctor(Leuze.Core.Domain.Repositories.IPermissionRepository)">
171
            <summary>
172
            
173
            </summary>
174
            <param name="permissionRepository"></param>
175
        </member>
176
        <member name="M:Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList.Handler.Handle(Leuze.Core.Application.CQRS.Permissions.Queries.GetPermissionList.Query,System.Threading.CancellationToken)">
177
            <summary>
178
            
179
            </summary>
180
            <param name="request"></param>
181
            <param name="cancellationToken"></param>
182
            <returns></returns>
183
        </member>
184
        <member name="T:Leuze.Core.Application.CQRS.IBaseRequestResponse">
185
            <summary>
186
                Base request response.
187
            </summary>
188
        </member>
189
        <member name="P:Leuze.Core.Application.CQRS.IBaseRequestResponse.ResponseType">
190
            <summary>
191
                The type of the request response.
192
            </summary>
193
        </member>
194
        <member name="P:Leuze.Core.Application.CQRS.IBaseRequestResponse.IsSuccess">
195
            <summary>
196
                Gets whether the response is successful.
197
            </summary>
198
        </member>
199
        <member name="P:Leuze.Core.Application.CQRS.IBaseRequestResponse.Errors">
200
            <summary>
201
                Gets the collection of errors.
202
            </summary>
203
        </member>
204
        <member name="M:Leuze.Core.Application.CQRS.IBaseRequestResponse.AddError(System.String)">
205
            <summary>
206
                Adds a new error message to the collection of <see cref="P:Leuze.Core.Application.CQRS.IBaseRequestResponse.Errors"/>.
207
            </summary>
208
            <param name="errorMessage"></param>
209
        </member>
210
        <member name="T:Leuze.Core.Application.CQRS.IBaseRequestResponse`1">
211
            <summary>
212
                Base request response that returns <see cref="!:TResult"/>.
213
            </summary>
214
            <typeparam name="TResult">The response object.</typeparam>
215
        </member>
216
        <member name="P:Leuze.Core.Application.CQRS.IBaseRequestResponse`1.Result">
217
            <summary>
218
                The result of the response.
219
            </summary>
220
        </member>
221
        <member name="T:Leuze.Core.Application.CQRS.RequestResponse">
222
            <summary>
223
                Non generic request response which does not have any result type.
224
            </summary>
225
        </member>
226
        <member name="P:Leuze.Core.Application.CQRS.RequestResponse.ResponseType">
227
            <inheritdoc />
228
        </member>
229
        <member name="P:Leuze.Core.Application.CQRS.RequestResponse.IsSuccess">
230
            <inheritdoc />
231
        </member>
232
        <member name="F:Leuze.Core.Application.CQRS.RequestResponse._errors">
233
            <summary>
234
                Backing field for <see cref="P:Leuze.Core.Application.CQRS.RequestResponse.Errors"/>.
235
            </summary>
236
        </member>
237
        <member name="P:Leuze.Core.Application.CQRS.RequestResponse.Errors">
238
            <inheritdoc />
239
        </member>
240
        <member name="M:Leuze.Core.Application.CQRS.RequestResponse.AddError(System.String)">
241
            <inheritdoc />
242
        </member>
243
        <member name="M:Leuze.Core.Application.CQRS.RequestResponse.CreateErrorResponse(System.String[])">
244
            <summary>
245
            Factory method for creating request response containing <paramref name="errorMessages"/>.
246
            </summary>
247
            <param name="errorMessages">The collection of error messages.</param>
248
            <returns>Created request response.</returns>
249
        </member>
250
        <member name="M:Leuze.Core.Application.CQRS.RequestResponse.CreateSuccessResponse">
251
            <summary>
252
            Factory method for creating successful request response.
253
            </summary>
254
            <returns>Created request response.</returns>
255
        </member>
256
        <member name="T:Leuze.Core.Application.CQRS.RequestResponse`1">
257
            <summary>
258
                Generic request response which returns a result.
259
            </summary>
260
        </member>
261
        <member name="P:Leuze.Core.Application.CQRS.RequestResponse`1.ResponseType">
262
            <inheritdoc />
263
        </member>
264
        <member name="P:Leuze.Core.Application.CQRS.RequestResponse`1.IsSuccess">
265
            <inheritdoc />
266
        </member>
267
        <member name="F:Leuze.Core.Application.CQRS.RequestResponse`1._errors">
268
            <summary>
269
                Backing field for <see cref="P:Leuze.Core.Application.CQRS.RequestResponse`1.Errors"/>.
270
            </summary>
271
        </member>
272
        <member name="P:Leuze.Core.Application.CQRS.RequestResponse`1.Errors">
273
            <inheritdoc />
274
        </member>
275
        <member name="M:Leuze.Core.Application.CQRS.RequestResponse`1.AddError(System.String)">
276
            <inheritdoc />
277
        </member>
278
        <member name="P:Leuze.Core.Application.CQRS.RequestResponse`1.Result">
279
            <inheritdoc />
280
        </member>
281
        <member name="M:Leuze.Core.Application.CQRS.RequestResponse`1.CreateSuccessResponse(`0)">
282
            <summary>
283
            Factory method for creating successful request response with <see cref="!:TResult"/>.
284
            </summary>
285
            <returns>Created request response with <see cref="!:TResult"/>.</returns>
286
        </member>
287
        <member name="M:Leuze.Core.Application.CQRS.RequestResponse`1.CreateErrorResponse(System.String[])">
288
            <summary>
289
            Factory method for creating error request response.
290
            </summary>
291
            <returns>Created error request response.</returns>
292
        </member>
293
        <member name="T:Leuze.Core.Application.CQRS.RequestResponseType">
294
            <summary>
295
            
296
            </summary>
297
        </member>
298
        <member name="F:Leuze.Core.Application.CQRS.RequestResponseType.Success">
299
            <summary>
300
            
301
            </summary>
302
        </member>
303
        <member name="F:Leuze.Core.Application.CQRS.RequestResponseType.Error">
304
            <summary>
305
            
306
            </summary>
307
        </member>
308
        <member name="T:Leuze.Core.Application.CQRS.Roles.Commands.CreateRole">
309
            <summary>
310
            
311
            </summary>
312
        </member>
313
        <member name="T:Leuze.Core.Application.CQRS.Roles.Commands.CreateRole.Command">
314
            <summary>
315
            
316
            </summary>
317
        </member>
318
        <member name="M:Leuze.Core.Application.CQRS.Roles.Commands.CreateRole.Command.#ctor(System.String,System.Collections.Generic.List{System.Guid})">
319
            <summary>
320
            
321
            </summary>
322
        </member>
323
        <member name="T:Leuze.Core.Application.CQRS.Roles.Commands.CreateRole.Response">
324
            <summary>
325
            
326
            </summary>
327
        </member>
328
        <member name="M:Leuze.Core.Application.CQRS.Roles.Commands.CreateRole.Response.#ctor(System.Guid)">
329
            <summary>
330
            
331
            </summary>
332
        </member>
333
        <member name="T:Leuze.Core.Application.CQRS.Roles.Commands.CreateRole.Handler">
334
            <summary>
335
            
336
            </summary>
337
        </member>
338
        <member name="M:Leuze.Core.Application.CQRS.Roles.Commands.CreateRole.Handler.#ctor(Leuze.Core.Domain.Repositories.IPermissionRepository,Leuze.Core.Domain.Repositories.IRoleRepository)">
339
            <summary>
340
            
341
            </summary>
342
            <param name="permissionRepository"></param>
343
            <param name="roleRepository"></param>
344
        </member>
345
        <member name="M:Leuze.Core.Application.CQRS.Roles.Commands.CreateRole.Handler.Handle(Leuze.Core.Application.CQRS.Roles.Commands.CreateRole.Command,System.Threading.CancellationToken)">
346
            <summary>
347
            
348
            </summary>
349
            <param name="request"></param>
350
            <param name="cancellationToken"></param>
351
            <returns></returns>
352
        </member>
353
        <member name="T:Leuze.Core.Application.DependencyInjection">
354
            <summary>
355
            
356
            </summary>
357
        </member>
358
        <member name="M:Leuze.Core.Application.DependencyInjection.AddLeuzeCore(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration,Microsoft.AspNetCore.Hosting.IWebHostEnvironment)">
359
            <summary>
360
            
361
            </summary>
362
            <param name="services"></param>
363
            <param name="config"></param>
364
            <param name="env"></param>
365
        </member>
366
        <member name="M:Leuze.Core.Application.DependencyInjection.UseLeuzeCore(Microsoft.AspNetCore.Builder.IApplicationBuilder)">
367
            <summary>
368
            
369
            </summary>
370
            <param name="app"></param>
371
        </member>
372
        <member name="T:Leuze.Core.Application.Exceptions.ValidationException">
373
            <summary>
374
            
375
            </summary>
376
        </member>
377
        <member name="M:Leuze.Core.Application.Exceptions.ValidationException.#ctor">
378
            <summary>
379
            
380
            </summary>
381
        </member>
382
        <member name="P:Leuze.Core.Application.Exceptions.ValidationException.Errors">
383
            <summary>
384
            
385
            </summary>
386
        </member>
387
        <member name="M:Leuze.Core.Application.Exceptions.ValidationException.#ctor(System.Collections.Generic.IEnumerable{FluentValidation.Results.ValidationFailure})">
388
            <summary>
389
            
390
            </summary>
391
            <param name="failures"></param>
392
        </member>
393
        <member name="T:Leuze.Core.Application.Models.Controllers.PagedModel">
7
        <member name="T:Leuze.Core.Application.UI.CoreUIExtension">
394 8
            <summary>
395 9
            
396 10
            </summary>
397 11
        </member>
398
        <member name="M:Leuze.Core.Application.Models.Controllers.PagedModel.#ctor(System.Int32,System.Int32)">
12
        <member name="P:Leuze.Core.Application.UI.CoreUIExtension.Name">
399 13
            <summary>
400 14
            
401 15
            </summary>
docs/Leuze.Core.Domain.xml
438 438
            
439 439
            </summary>
440 440
        </member>
441
        <member name="T:Leuze.Core.Domain.Services.IEmailSender">
442
            <summary>
443
                General interface for custom email sender providers.
444
            </summary>
445
        </member>
446
        <member name="M:Leuze.Core.Domain.Services.IEmailSender.SendAsync``1(Leuze.Core.Domain.Services.Models.Email.BaseEmailTemplate{``0})">
447
            <summary>
448
            
449
            </summary>
450
            <typeparam name="TValuesType"></typeparam>
451
            <param name="template"></param>
452
            <returns></returns>
453
        </member>
454
        <member name="T:Leuze.Core.Domain.Services.Models.Email.BaseEmailTemplate`1">
455
            <summary>
456
            
457
            </summary>
458
            <typeparam name="TValuesType"></typeparam>
459
        </member>
460
        <member name="P:Leuze.Core.Domain.Services.Models.Email.BaseEmailTemplate`1.From">
461
            <summary>
462
            
463
            </summary>
464
        </member>
465
        <member name="P:Leuze.Core.Domain.Services.Models.Email.BaseEmailTemplate`1.To">
466
            <summary>
467
            
468
            </summary>
469
        </member>
470
        <member name="P:Leuze.Core.Domain.Services.Models.Email.BaseEmailTemplate`1.Subject">
471
            <summary>
472
            
473
            </summary>
474
        </member>
475
        <member name="P:Leuze.Core.Domain.Services.Models.Email.BaseEmailTemplate`1.Values">
476
            <summary>
477
            
478
            </summary>
479
        </member>
480
        <member name="P:Leuze.Core.Domain.Services.Models.Email.BaseEmailTemplate`1.TemplatePath">
481
            <summary>
482
            
483
            </summary>
484
        </member>
485
        <member name="M:Leuze.Core.Domain.Services.Models.Email.BaseEmailTemplate`1.#ctor(System.Net.Mail.MailAddress,System.Net.Mail.MailAddress,System.String,`0,System.String)">
486
            <summary>
487
            
488
            </summary>
489
            <param name="from"></param>
490
            <param name="to"></param>
491
            <param name="subject"></param>
492
            <param name="values"></param>
493
            <param name="templatePath"></param>
494
        </member>
441 495
    </members>
442 496
</doc>
src/Core/Domain/Leuze.Core.Domain/Leuze.Core.Domain.csproj
28 28
    <ProjectReference Include="..\..\Application\Leuze.Core.Application.Identity\Leuze.Core.Application.Identity.csproj" />
29 29
  </ItemGroup>
30 30

  
31
  <ItemGroup>
32
    <Folder Include="Services\Models\Email\Templates\" />
33
  </ItemGroup>
34

  
31 35
</Project>
src/Core/Domain/Leuze.Core.Domain/Services/IEmailSender.cs
1
using Leuze.Core.Domain.Services.Models.Email;
2
using System.Threading.Tasks;
3

  
4
namespace Leuze.Core.Domain.Services
5
{
6
    /// <summary>
7
    ///     General interface for custom email sender providers.
8
    /// </summary>
9
    public interface IEmailSender
10
    {
11
        /// <summary>
12
        /// 
13
        /// </summary>
14
        /// <typeparam name="TValuesType"></typeparam>
15
        /// <param name="template"></param>
16
        /// <returns></returns>
17
        Task SendAsync<TValuesType>(BaseEmailTemplate<TValuesType> template);
18

  
19
    }
20
}
src/Core/Domain/Leuze.Core.Domain/Services/Models/Email/BaseEmailTemplate.cs
1
using System.Net.Mail;
2

  
3
namespace Leuze.Core.Domain.Services.Models.Email
4
{
5
    /// <summary>
6
    /// 
7
    /// </summary>
8
    /// <typeparam name="TValuesType"></typeparam>
9
    public abstract class BaseEmailTemplate<TValuesType>
10
    {
11

  
12
        /// <summary>
13
        /// 
14
        /// </summary>
15
        public MailAddress From { get; }
16

  
17
        /// <summary>
18
        /// 
19
        /// </summary>
20
        public MailAddress To { get; }
21

  
22
        /// <summary>
23
        /// 
24
        /// </summary>
25
        public string Subject { get; }
26

  
27
        /// <summary>
28
        /// 
29
        /// </summary>
30
        public TValuesType Values { get; }
31

  
32
        /// <summary>
33
        /// 
34
        /// </summary>
35
        public string TemplatePath { get; }
36

  
37
        /// <summary>
38
        /// 
39
        /// </summary>
40
        /// <param name="from"></param>
41
        /// <param name="to"></param>
42
        /// <param name="subject"></param>
43
        /// <param name="values"></param>
44
        /// <param name="templatePath"></param>
45
        public BaseEmailTemplate(MailAddress from, MailAddress to, string subject, TValuesType values, string templatePath)
46
            => (From, To, Subject, Values, TemplatePath) = (from, to, subject, values, templatePath);
47

  
48
    }
49
}
src/Core/Infrastructure/Leuze.Core.Infrastructure.Email/Configuration/EmailSettings.cs
1
namespace Leuze.Core.Infrastructure.Email.Configuration
2
{
3
    /// <summary>
4
    ///     An email configuration settings.
5
    /// </summary>
6
    public sealed class EmailSettings
7
    {
8
        /// <summary>
9
        ///     Smtp configuration section.
10
        /// </summary>
11
        public SmtpSection Smtp { get; set; } = new();
12

  
13
        /// <summary>
14
        ///     Specifies email template root path.
15
        /// </summary>
16
        public string AdminEmailAddress { get; set; } = null!;
17

  
18
        /// <summary>
19
        ///     A wrapper class for <see cref="EmailSettings" /> Smtp configuration section.
20
        /// </summary>
21
        public sealed class SmtpSection
22
        {
23
            /// <summary>
24
            ///     Specifies hostname of SMTP server.
25
            /// </summary>
26
            public string Host { get; set; } = null!;
27

  
28
            /// <summary>
29
            ///     Specifies username of SMTP server.
30
            /// </summary>
31
            public string User { get; set; } = null!;
32

  
33
            /// <summary>
34
            ///     Specifies password for connection to SMTP server.
35
            /// </summary>
36
            public string Password { get; set; } = null!;
37

  
38
            /// <summary>
39
            ///     Specifies SMTP server communication port.
40
            /// </summary>
41
            public int Port { get; set; }
42
        }
43
    }
44
}
src/Core/Infrastructure/Leuze.Core.Infrastructure.Email/DependencyInjection.cs
1
using ExtCore.Infrastructure.Actions;
2
using Leuze.Core.Infrastructure.Email.Configuration;
3
using Leuze.Core.Infrastructure.Email.Extensions;
4
using Microsoft.AspNetCore.Builder;
5
using Microsoft.Extensions.Configuration;
6
using Microsoft.Extensions.DependencyInjection;
7
using System;
8

  
9
namespace Leuze.Core.Infrastructure.Email
10
{
11
    /// <summary>
12
    /// 
13
    /// </summary>
14
    public class ServicesConfiguration : IConfigureServicesAction
15
    {
16
        /// <summary>
17
        /// 
18
        /// </summary>
19
        public int Priority => 1000;
20

  
21
        /// <summary>
22
        /// 
23
        /// </summary>
24
        /// <param name="services"></param>
25
        /// <param name="serviceProvider"></param>
26
        public void Execute(IServiceCollection services, IServiceProvider serviceProvider)
27
        {
28
            var configuration = serviceProvider.GetRequiredService<IConfiguration>();
29
            EmailSettings emailSettings = new();
30
            var emailSettingsSection = configuration.GetSection("Email");
31
            emailSettingsSection.Bind(emailSettings);
32
            services.Configure<EmailSettings>(emailSettingsSection);
33
            services.AddEmailProvider(emailSettings);
34
        }
35
    }
36

  
37
    /// <summary>
38
    /// 
39
    /// </summary>
40
    public class ApplicationConfiguration : IConfigureAction
41
    {
42
        /// <summary>
43
        /// 
44
        /// </summary>
45
        public int Priority => 11000;
46

  
47
        /// <summary>
48
        /// 
49
        /// </summary>
50
        /// <param name="applicationBuilder"></param>
51
        /// <param name="serviceProvider"></param>
52
        public void Execute(IApplicationBuilder applicationBuilder, IServiceProvider serviceProvider)
53
        {
54
        }
55
    }
56
}
src/Core/Infrastructure/Leuze.Core.Infrastructure.Email/Extensions/EmailProviderExtension.cs
1
using Leuze.Core.Domain.Services;
2
using Leuze.Core.Infrastructure.Email.Configuration;
3
using Leuze.Core.Infrastructure.Email.Services;
4
using Microsoft.Extensions.DependencyInjection;
5
using System.IO;
6
using System.Net;
7
using System.Net.Mail;
8

  
9
namespace Leuze.Core.Infrastructure.Email.Extensions
10
{
11
    public static class EmailProviderExtension
12
    {
13
        /// <summary>
14
        /// 
15
        /// </summary>
16
        /// <param name="services"></param>
17
        /// <param name="emailSettings"></param>
18
        public static void AddEmailProvider(this IServiceCollection services, EmailSettings emailSettings)
19
        {
20
            services
21
                .AddFluentEmail(emailSettings.AdminEmailAddress)
22
                .AddSmtpSender(new SmtpClient()
23
                {
24
                    Host = emailSettings.Smtp.Host,
25
                    Port = emailSettings.Smtp.Port,
26
                    EnableSsl = true,
27
                    Credentials = new NetworkCredential(emailSettings.Smtp.User, emailSettings.Smtp.Password)
28
                })
29
                .AddRazorRenderer($"{Directory.GetCurrentDirectory()}/");
30

  
31
            services.AddScoped<IEmailSender, SmtpSender>();
32
        }
33

  
34
    }
35
}
src/Core/Infrastructure/Leuze.Core.Infrastructure.Email/Leuze.Core.Infrastructure.Email.csproj
1
<Project Sdk="Microsoft.NET.Sdk">
2

  
3
  <PropertyGroup>
4
    <AssemblyName>Leuze.Core.Infrastructure.Email</AssemblyName>
5
    <RootNamespace>Leuze.Core.Infrastructure.Email</RootNamespace>
6
    <Product></Product>
7
    <Description></Description>
8
  </PropertyGroup>
9

  
10
  <PropertyGroup>
11
    <TargetFramework>net5.0</TargetFramework>
12
    <Nullable>enable</Nullable>
13
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
14
  </PropertyGroup>
15

  
16
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
17
    <OutputPath>..\..\..\Presentation\Leuze.Modules\</OutputPath>
18
    <DocumentationFile>..\..\..\..\docs\Leuze.Core.Infrastructure.Email.xml</DocumentationFile>
19
  </PropertyGroup>
20

  
21
  <ItemGroup>
22
    <PackageReference Include="ExtCore.Infrastructure" Version="6.0.0" />
23
    <PackageReference Include="FluentEmail.Razor" Version="3.0.0" />
24
    <PackageReference Include="FluentEmail.Smtp" Version="3.0.0" />
25
  </ItemGroup>
26
  
27
  <ItemGroup>
28
    <ProjectReference Include="..\..\Domain\Leuze.Core.Domain\Leuze.Core.Domain.csproj" />
29
  </ItemGroup>
30

  
31
</Project>
src/Core/Infrastructure/Leuze.Core.Infrastructure.Email/Services/SmtpSender.cs
1
using FluentEmail.Razor;
2
using Leuze.Core.Domain.Services;
3
using Leuze.Core.Domain.Services.Models.Email;
4
using Leuze.Core.Infrastructure.Email.Configuration;
5
using Microsoft.Extensions.Options;
6
using System;
7
using System.Collections.Generic;
8
using System.IO;
9
using System.Linq;
10
using System.Net.Mail;
11
using System.Text;
12
using System.Threading.Tasks;
13

  
14
namespace Leuze.Core.Infrastructure.Email.Services
15
{
16
    /// <summary>
17
    ///     Implementation of SMTP email provider.
18
    /// </summary>
19
    public class SmtpSender : FluentEmail.Smtp.SmtpSender, IEmailSender
20
    {
21
        /// <summary>
22
        /// 
23
        /// </summary>
24
        private readonly EmailSettings _emailSettings;
25

  
26
        /// <summary>
27
        /// 
28
        /// </summary>
29
        /// <param name="smtpClient"></param>
30
        /// <param name="renderer"></param>
31
        /// <param name="options"></param>
32
        public SmtpSender(SmtpClient smtpClient, RazorRenderer renderer, IOptions<EmailSettings> options) : base(smtpClient) 
33
            => (FluentEmail.Core.Email.DefaultSender, FluentEmail.Core.Email.DefaultRenderer, _emailSettings) 
34
                = (this, renderer, options.Value);
35

  
36
        /// <summary>
37
        /// 
38
        /// </summary>
39
        /// <returns></returns>
40
        public MailAddress GetAdminEmailAddress() => new MailAddress(_emailSettings.AdminEmailAddress);
41

  
42
        /// <summary>
43
        /// 
44
        /// </summary>
45
        /// <param name="template"></param>
46
        /// <returns></returns>
47
        public async Task SendAsync<TValuesType>(BaseEmailTemplate<TValuesType> template)
48
        {
49
            await FluentEmail.Core.Email.From(template.From is not null ? template.From.Address : _emailSettings.AdminEmailAddress)
50
                .To(template.To is not null ? template.To.Address : _emailSettings.AdminEmailAddress)
51
                .Subject(template.Subject)
52
                .UsingTemplateFromFile($"Templates/{template.TemplatePath}", template.Values)
53
                .SendAsync();
54
        }
55

  
56
    }
57
}
src/Presentation/Leuze.App/appsettings.Development.json
6 6
  "AppSettings": {
7 7
    "DatabaseConnection": {
8 8
      "ConnectionString": "Server=localhost;Database=Leuze_Local;User Id=sa;Password=LeuzeDB01;",
9
      "IsInMemory": false
9
      "IsInMemory": true
10 10
    },
11 11
    "Encryption": {
12 12
      "Key": "GY1dGVtY9bKReyFiGap1Ba7zKbZGvZWZ",
13 13
      "IV": "GY1dGVtY9bKReyFi"
14 14
    }
15 15
  },
16
  "Email": {
17
    "Smtp": {
18
      "Host": "",
19
      "User": "",
20
      "Password": "",
21
      "Port": 587
22
    },
23
    "AdminEmailAddress": ""
24
  },
16 25
  "Serilog": {
17 26
    "Using": [],
18 27
    "MinimumLevel": {
src/Presentation/Leuze.App/appsettings.json
13 13
      "IV": "GY1dGVtY9bKReyFi"
14 14
    }
15 15
  },
16
  "Email": {
17
    "Smtp": {
18
      "Host": "",
19
      "User": "",
20
      "Password": "",
21
      "Port": 587
22
    },
23
    "AdminEmailAddress": ""
24
  },
16 25
  "Serilog": {
17 26
    "Using": [],
18 27
    "MinimumLevel": {
src/Presentation/Leuze.Modules/net5.0/Leuze.Core.Application.Identity.deps.json
1
{
2
  "runtimeTarget": {
3
    "name": ".NETCoreApp,Version=v5.0",
4
    "signature": ""
5
  },
6
  "compilationOptions": {},
7
  "targets": {
8
    ".NETCoreApp,Version=v5.0": {
9
      "Leuze.Core.Application.Identity/1.0.0": {
10
        "dependencies": {
11
          "ExtCore.Data.Entities.Abstractions": "6.0.0",
12
          "Microsoft.Extensions.Identity.Core": "5.0.4",
13
          "Microsoft.Extensions.Identity.Stores": "5.0.4"
14
        },
15
        "runtime": {
16
          "Leuze.Core.Application.Identity.dll": {}
17
        }
18
      },
19
      "ExtCore.Data.Entities.Abstractions/6.0.0": {
20
        "runtime": {
21
          "lib/netstandard2.0/ExtCore.Data.Entities.Abstractions.dll": {
22
            "assemblyVersion": "6.0.0.0",
23
            "fileVersion": "6.0.0.0"
24
          }
25
        }
26
      },
27
      "Microsoft.AspNetCore.Cryptography.Internal/5.0.4": {
28
        "runtime": {
29
          "lib/net5.0/Microsoft.AspNetCore.Cryptography.Internal.dll": {
30
            "assemblyVersion": "5.0.0.0",
31
            "fileVersion": "5.0.421.11815"
32
          }
33
        }
34
      },
35
      "Microsoft.AspNetCore.Cryptography.KeyDerivation/5.0.4": {
36
        "dependencies": {
37
          "Microsoft.AspNetCore.Cryptography.Internal": "5.0.4"
38
        },
39
        "runtime": {
40
          "lib/net5.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll": {
41
            "assemblyVersion": "5.0.0.0",
42
            "fileVersion": "5.0.421.11815"
43
          }
44
        }
45
      },
46
      "Microsoft.Extensions.Caching.Abstractions/5.0.0": {
47
        "dependencies": {
48
          "Microsoft.Extensions.Primitives": "5.0.0"
49
        },
50
        "runtime": {
51
          "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.dll": {
52
            "assemblyVersion": "5.0.0.0",
53
            "fileVersion": "5.0.20.51904"
54
          }
55
        }
56
      },
57
      "Microsoft.Extensions.DependencyInjection/5.0.0": {
58
        "dependencies": {
59
          "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0"
60
        },
61
        "runtime": {
62
          "lib/net5.0/Microsoft.Extensions.DependencyInjection.dll": {
63
            "assemblyVersion": "5.0.0.0",
64
            "fileVersion": "5.0.20.51904"
65
          }
66
        }
67
      },
68
      "Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
69
        "runtime": {
70
          "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
71
            "assemblyVersion": "5.0.0.0",
72
            "fileVersion": "5.0.20.51904"
73
          }
74
        }
75
      },
76
      "Microsoft.Extensions.Identity.Core/5.0.4": {
77
        "dependencies": {
78
          "Microsoft.AspNetCore.Cryptography.KeyDerivation": "5.0.4",
79
          "Microsoft.Extensions.Logging": "5.0.0",
80
          "Microsoft.Extensions.Options": "5.0.0"
81
        },
82
        "runtime": {
83
          "lib/net5.0/Microsoft.Extensions.Identity.Core.dll": {
84
            "assemblyVersion": "5.0.0.0",
85
            "fileVersion": "5.0.421.11815"
86
          }
87
        }
88
      },
89
      "Microsoft.Extensions.Identity.Stores/5.0.4": {
90
        "dependencies": {
91
          "Microsoft.Extensions.Caching.Abstractions": "5.0.0",
92
          "Microsoft.Extensions.Identity.Core": "5.0.4",
93
          "Microsoft.Extensions.Logging": "5.0.0"
94
        },
95
        "runtime": {
96
          "lib/net5.0/Microsoft.Extensions.Identity.Stores.dll": {
97
            "assemblyVersion": "5.0.0.0",
98
            "fileVersion": "5.0.421.11815"
99
          }
100
        }
101
      },
102
      "Microsoft.Extensions.Logging/5.0.0": {
103
        "dependencies": {
104
          "Microsoft.Extensions.DependencyInjection": "5.0.0",
105
          "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
106
          "Microsoft.Extensions.Logging.Abstractions": "5.0.0",
107
          "Microsoft.Extensions.Options": "5.0.0"
108
        },
109
        "runtime": {
110
          "lib/netstandard2.1/Microsoft.Extensions.Logging.dll": {
111
            "assemblyVersion": "5.0.0.0",
112
            "fileVersion": "5.0.20.51904"
113
          }
114
        }
115
      },
116
      "Microsoft.Extensions.Logging.Abstractions/5.0.0": {
117
        "runtime": {
118
          "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": {
119
            "assemblyVersion": "5.0.0.0",
120
            "fileVersion": "5.0.20.51904"
121
          }
122
        }
123
      },
124
      "Microsoft.Extensions.Options/5.0.0": {
125
        "dependencies": {
126
          "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
127
          "Microsoft.Extensions.Primitives": "5.0.0"
128
        },
129
        "runtime": {
130
          "lib/net5.0/Microsoft.Extensions.Options.dll": {
131
            "assemblyVersion": "5.0.0.0",
132
            "fileVersion": "5.0.20.51904"
133
          }
134
        }
135
      },
136
      "Microsoft.Extensions.Primitives/5.0.0": {
137
        "runtime": {
138
          "lib/netcoreapp3.0/Microsoft.Extensions.Primitives.dll": {
139
            "assemblyVersion": "5.0.0.0",
140
            "fileVersion": "5.0.20.51904"
141
          }
142
        }
143
      }
144
    }
145
  },
146
  "libraries": {
147
    "Leuze.Core.Application.Identity/1.0.0": {
148
      "type": "project",
149
      "serviceable": false,
150
      "sha512": ""
151
    },
152
    "ExtCore.Data.Entities.Abstractions/6.0.0": {
153
      "type": "package",
154
      "serviceable": true,
155
      "sha512": "sha512-ekUMHyibFhHs8mmgTDMT4F/44iZCAfgUVSXSiNxv+cLAMaNAnRKCn5iZzIpj4ASZouJ/pCRa2ofIBGtY/zhPEw==",
156
      "path": "extcore.data.entities.abstractions/6.0.0",
157
      "hashPath": "extcore.data.entities.abstractions.6.0.0.nupkg.sha512"
158
    },
159
    "Microsoft.AspNetCore.Cryptography.Internal/5.0.4": {
160
      "type": "package",
161
      "serviceable": true,
162
      "sha512": "sha512-KZwzffCGaE+V6n/kBPdFEA1M5pDgH9Y6GbOSjzSyH8h6JC+hAkpAnqFtToGNHyBK9QGExA1Ie1BvEL9lycdJ5w==",
163
      "path": "microsoft.aspnetcore.cryptography.internal/5.0.4",
164
      "hashPath": "microsoft.aspnetcore.cryptography.internal.5.0.4.nupkg.sha512"
165
    },
166
    "Microsoft.AspNetCore.Cryptography.KeyDerivation/5.0.4": {
167
      "type": "package",
168
      "serviceable": true,
169
      "sha512": "sha512-0gY+YzLConLQs0sTqZSlQI2QPfws7ZsSTjNHB9rhVuK6VkB9fTWXaEj9ostSRHGUgqs0pdXOj6oEU3lFZgY0NA==",
170
      "path": "microsoft.aspnetcore.cryptography.keyderivation/5.0.4",
171
      "hashPath": "microsoft.aspnetcore.cryptography.keyderivation.5.0.4.nupkg.sha512"
172
    },
173
    "Microsoft.Extensions.Caching.Abstractions/5.0.0": {
174
      "type": "package",
175
      "serviceable": true,
176
      "sha512": "sha512-bu8As90/SBAouMZ6fJ+qRNo1X+KgHGrVueFhhYi+E5WqEhcnp2HoWRFnMzXQ6g4RdZbvPowFerSbKNH4Dtg5yg==",
177
      "path": "microsoft.extensions.caching.abstractions/5.0.0",
178
      "hashPath": "microsoft.extensions.caching.abstractions.5.0.0.nupkg.sha512"
179
    },
180
    "Microsoft.Extensions.DependencyInjection/5.0.0": {
181
      "type": "package",
182
      "serviceable": true,
183
      "sha512": "sha512-Rc2kb/p3Ze6cP6rhFC3PJRdWGbLvSHZc0ev7YlyeU6FmHciDMLrhoVoTUEzKPhN5ZjFgKF1Cf5fOz8mCMIkvpA==",
184
      "path": "microsoft.extensions.dependencyinjection/5.0.0",
185
      "hashPath": "microsoft.extensions.dependencyinjection.5.0.0.nupkg.sha512"
186
    },
187
    "Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
188
      "type": "package",
189
      "serviceable": true,
190
      "sha512": "sha512-ORj7Zh81gC69TyvmcUm9tSzytcy8AVousi+IVRAI8nLieQjOFryRusSFh7+aLk16FN9pQNqJAiMd7BTKINK0kA==",
191
      "path": "microsoft.extensions.dependencyinjection.abstractions/5.0.0",
192
      "hashPath": "microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512"
193
    },
194
    "Microsoft.Extensions.Identity.Core/5.0.4": {
195
      "type": "package",
196
      "serviceable": true,
197
      "sha512": "sha512-ibRI/IPV536SIUEvasIICtrf/df+ukBmBHFY1N9cT3igsAFP/Ru3eBBWwMlTjJKkkQf5W0PCncMIBK16DnehCg==",
198
      "path": "microsoft.extensions.identity.core/5.0.4",
199
      "hashPath": "microsoft.extensions.identity.core.5.0.4.nupkg.sha512"
200
    },
201
    "Microsoft.Extensions.Identity.Stores/5.0.4": {
202
      "type": "package",
203
      "serviceable": true,
204
      "sha512": "sha512-hrJNgTY7BMCHWts10AzUfZryKwJE8QGZ1ZbVgCcgZVnqVrWlTLDJnPg2DmHVyw3em+twg5ZT4G+OlHT9ovfa0g==",
205
      "path": "microsoft.extensions.identity.stores/5.0.4",
206
      "hashPath": "microsoft.extensions.identity.stores.5.0.4.nupkg.sha512"
207
    },
208
    "Microsoft.Extensions.Logging/5.0.0": {
209
      "type": "package",
210
      "serviceable": true,
211
      "sha512": "sha512-MgOwK6tPzB6YNH21wssJcw/2MKwee8b2gI7SllYfn6rvTpIrVvVS5HAjSU2vqSku1fwqRvWP0MdIi14qjd93Aw==",
212
      "path": "microsoft.extensions.logging/5.0.0",
213
      "hashPath": "microsoft.extensions.logging.5.0.0.nupkg.sha512"
214
    },
215
    "Microsoft.Extensions.Logging.Abstractions/5.0.0": {
216
      "type": "package",
217
      "serviceable": true,
218
      "sha512": "sha512-NxP6ahFcBnnSfwNBi2KH2Oz8Xl5Sm2krjId/jRR3I7teFphwiUoUeZPwTNA21EX+5PtjqmyAvKaOeBXcJjcH/w==",
219
      "path": "microsoft.extensions.logging.abstractions/5.0.0",
220
      "hashPath": "microsoft.extensions.logging.abstractions.5.0.0.nupkg.sha512"
221
    },
222
    "Microsoft.Extensions.Options/5.0.0": {
223
      "type": "package",
224
      "serviceable": true,
225
      "sha512": "sha512-CBvR92TCJ5uBIdd9/HzDSrxYak+0W/3+yxrNg8Qm6Bmrkh5L+nu6m3WeazQehcZ5q1/6dDA7J5YdQjim0165zg==",
226
      "path": "microsoft.extensions.options/5.0.0",
227
      "hashPath": "microsoft.extensions.options.5.0.0.nupkg.sha512"
228
    },
229
    "Microsoft.Extensions.Primitives/5.0.0": {
230
      "type": "package",
231
      "serviceable": true,
232
      "sha512": "sha512-cI/VWn9G1fghXrNDagX9nYaaB/nokkZn0HYAawGaELQrl8InSezfe9OnfPZLcJq3esXxygh3hkq2c3qoV3SDyQ==",
233
      "path": "microsoft.extensions.primitives/5.0.0",
234
      "hashPath": "microsoft.extensions.primitives.5.0.0.nupkg.sha512"
235
    }
236
  }
237
}
src/Presentation/Leuze.Modules/net5.0/Leuze.Core.Application.Identity.xml
1
<?xml version="1.0"?>
2
<doc>
3
    <assembly>
4
        <name>Leuze.Core.Application.Identity</name>
5
    </assembly>
6
    <members>
7
        <member name="T:Leuze.Core.Application.Identity.ApplicationPermission">
8
            <summary>
9
            
10
            </summary>
11
        </member>
12
        <member name="M:Leuze.Core.Application.Identity.ApplicationPermission.#ctor">
13
            <summary>
14
            
15
            </summary>
16
        </member>
17
        <member name="M:Leuze.Core.Application.Identity.ApplicationPermission.#ctor(System.String,System.String,System.String)">
18
            <summary>
19
            
20
            </summary>
21
            <param name="name"></param>
22
            <param name="module"></param>
23
            <param name="privilege"></param>
24
        </member>
25
        <member name="P:Leuze.Core.Application.Identity.ApplicationPermission.Id">
26
            <summary>
27
            
28
            </summary>
29
        </member>
30
        <member name="P:Leuze.Core.Application.Identity.ApplicationPermission.Name">
31
            <summary>
32
            
33
            </summary>
34
        </member>
35
        <member name="P:Leuze.Core.Application.Identity.ApplicationPermission.Module">
36
            <summary>
37
            
38
            </summary>
39
        </member>
40
        <member name="P:Leuze.Core.Application.Identity.ApplicationPermission.Privilege">
41
            <summary>
42
            
43
            </summary>
44
        </member>
45
        <member name="P:Leuze.Core.Application.Identity.ApplicationPermission.Roles">
46
            <summary>
47
            
48
            </summary>
49
        </member>
50
        <member name="T:Leuze.Core.Application.Identity.ApplicationRole">
51
            <summary>
52
            
53
            </summary>
54
        </member>
55
        <member name="M:Leuze.Core.Application.Identity.ApplicationRole.#ctor">
56
            <summary>
57
            
58
            </summary>
59
        </member>
60
        <member name="M:Leuze.Core.Application.Identity.ApplicationRole.#ctor(System.String)">
61
            <summary>
62
            
63
            </summary>
64
            <param name="name"></param>
65
        </member>
66
        <member name="P:Leuze.Core.Application.Identity.ApplicationRole.Permissions">
67
            <summary>
68
            
69
            </summary>
70
        </member>
71
        <member name="P:Leuze.Core.Application.Identity.ApplicationRole.UserRoles">
72
            <summary>
73
            
74
            </summary>
75
        </member>
76
        <member name="M:Leuze.Core.Application.Identity.ApplicationRole.AssignPermission(Leuze.Core.Application.Identity.ApplicationPermission)">
77
            <summary>
78
            
79
            </summary>
80
            <param name="permission"></param>
81
        </member>
82
        <member name="M:Leuze.Core.Application.Identity.ApplicationRole.RemovePermission(Leuze.Core.Application.Identity.ApplicationPermission)">
83
            <summary>
84
            
85
            </summary>
86
            <param name="permission"></param>
87
        </member>
88
        <member name="M:Leuze.Core.Application.Identity.ApplicationRole.ClearPermissions">
89
            <summary>
90
            
91
            </summary>
92
        </member>
93
        <member name="T:Leuze.Core.Application.Identity.ApplicationRoleClaim">
94
            <summary>
95
            
96
            </summary>
97
        </member>
98
        <member name="T:Leuze.Core.Application.Identity.ApplicationUser">
99
            <summary>
100
            
101
            </summary>
102
        </member>
103
        <member name="M:Leuze.Core.Application.Identity.ApplicationUser.#ctor">
104
            <summary>
105
            
106
            </summary>
107
        </member>
108
        <member name="M:Leuze.Core.Application.Identity.ApplicationUser.#ctor(System.String,System.String)">
109
            <summary>
110
            
111
            </summary>
112
            <param name="userName"></param>
113
            <param name="email"></param>
114
        </member>
115
        <member name="P:Leuze.Core.Application.Identity.ApplicationUser.UserRoles">
116
            <summary>
117
            
118
            </summary>
119
        </member>
120
        <member name="T:Leuze.Core.Application.Identity.ApplicationUserClaim">
121
            <summary>
122
            
123
            </summary>
124
        </member>
125
        <member name="T:Leuze.Core.Application.Identity.ApplicationUserLogin">
126
            <summary>
127
            
128
            </summary>
129
        </member>
130
        <member name="T:Leuze.Core.Application.Identity.ApplicationUserRole">
131
            <summary>
132
            
133
            </summary>
134
        </member>
135
        <member name="P:Leuze.Core.Application.Identity.ApplicationUserRole.User">
136
            <summary>
137
            
138
            </summary>
139
        </member>
140
        <member name="P:Leuze.Core.Application.Identity.ApplicationUserRole.Role">
141
            <summary>
142
            
143
            </summary>
144
        </member>
145
        <member name="T:Leuze.Core.Application.Identity.ApplicationUserToken">
146
            <summary>
147
            
148
            </summary>
149
        </member>
150
    </members>
151
</doc>
src/Presentation/Leuze.Modules/net5.0/Leuze.Core.Application.UI.StaticWebAssets.xml
1
<StaticWebAssets Version="1.0">
2
  <ContentRoot BasePath="/" Path="C:\Users\domin\source\repos\Leuze\src\Core\Application\Leuze.Core.Application.UI\obj\Debug\net5.0\scopedcss\bundle\" />
3
</StaticWebAssets>
src/Presentation/Leuze.Modules/net5.0/Leuze.Core.Application.UI.deps.json
1
{
2
  "runtimeTarget": {
3
    "name": ".NETCoreApp,Version=v5.0",
4
    "signature": ""
5
  },
6
  "compilationOptions": {
7
    "defines": [
8
      "TRACE",
9
      "DEBUG",
10
      "NET",
11
      "NET5_0",
12
      "NETCOREAPP",
13
      "NET5_0_OR_GREATER",
14
      "NETCOREAPP1_0_OR_GREATER",
15
      "NETCOREAPP1_1_OR_GREATER",
16
      "NETCOREAPP2_0_OR_GREATER",
17
      "NETCOREAPP2_1_OR_GREATER",
18
      "NETCOREAPP2_2_OR_GREATER",
19
      "NETCOREAPP3_0_OR_GREATER",
20
      "NETCOREAPP3_1_OR_GREATER"
21
    ],
22
    "languageVersion": "9.0",
23
    "platform": "",
24
    "allowUnsafe": false,
25
    "warningsAsErrors": false,
26
    "optimize": false,
27
    "keyFile": "",
28
    "emitEntryPoint": false,
29
    "xmlDoc": true,
30
    "debugType": "portable"
31
  },
32
  "targets": {
33
    ".NETCoreApp,Version=v5.0": {
34
      "Leuze.Core.Application.UI/1.0.0": {
35
        "dependencies": {
36
          "Leuze.Core.Application": "1.0.0",
37
          "Microsoft.AspNetCore.Antiforgery": "5.0.0.0",
38
          "Microsoft.AspNetCore.Authentication.Abstractions": "5.0.0.0",
39
          "Microsoft.AspNetCore.Authentication.Cookies": "5.0.0.0",
40
          "Microsoft.AspNetCore.Authentication.Core": "5.0.0.0",
41
          "Microsoft.AspNetCore.Authentication": "5.0.0.0",
42
          "Microsoft.AspNetCore.Authentication.OAuth": "5.0.0.0",
43
          "Microsoft.AspNetCore.Authorization": "5.0.0.0",
44
          "Microsoft.AspNetCore.Authorization.Policy": "5.0.0.0",
45
          "Microsoft.AspNetCore.Components.Authorization": "5.0.0.0",
46
          "Microsoft.AspNetCore.Components": "5.0.0.0",
47
          "Microsoft.AspNetCore.Components.Forms": "5.0.0.0",
48
          "Microsoft.AspNetCore.Components.Server": "5.0.0.0",
49
          "Microsoft.AspNetCore.Components.Web": "5.0.0.0",
50
          "Microsoft.AspNetCore.Connections.Abstractions": "5.0.0.0",
51
          "Microsoft.AspNetCore.CookiePolicy": "5.0.0.0",
52
          "Microsoft.AspNetCore.Cors": "5.0.0.0",
53
          "Microsoft.AspNetCore.DataProtection.Abstractions": "5.0.0.0",
54
          "Microsoft.AspNetCore.DataProtection": "5.0.0.0",
55
          "Microsoft.AspNetCore.DataProtection.Extensions": "5.0.0.0",
56
          "Microsoft.AspNetCore.Diagnostics.Abstractions": "5.0.0.0",
57
          "Microsoft.AspNetCore.Diagnostics": "5.0.0.0",
58
          "Microsoft.AspNetCore.Diagnostics.HealthChecks": "5.0.0.0",
59
          "Microsoft.AspNetCore": "5.0.0.0",
60
          "Microsoft.AspNetCore.HostFiltering": "5.0.0.0",
61
          "Microsoft.AspNetCore.Hosting.Abstractions": "5.0.0.0",
62
          "Microsoft.AspNetCore.Hosting": "5.0.0.0",
63
          "Microsoft.AspNetCore.Hosting.Server.Abstractions": "5.0.0.0",
64
          "Microsoft.AspNetCore.Html.Abstractions": "5.0.0.0",
65
          "Microsoft.AspNetCore.Http.Abstractions": "5.0.0.0",
66
          "Microsoft.AspNetCore.Http.Connections.Common": "5.0.0.0",
67
          "Microsoft.AspNetCore.Http.Connections": "5.0.0.0",
68
          "Microsoft.AspNetCore.Http": "5.0.0.0",
69
          "Microsoft.AspNetCore.Http.Extensions": "5.0.0.0",
70
          "Microsoft.AspNetCore.Http.Features": "5.0.0.0",
71
          "Microsoft.AspNetCore.HttpOverrides": "5.0.0.0",
72
          "Microsoft.AspNetCore.HttpsPolicy": "5.0.0.0",
73
          "Microsoft.AspNetCore.Identity": "5.0.0.0",
74
          "Microsoft.AspNetCore.Localization": "5.0.0.0",
75
          "Microsoft.AspNetCore.Localization.Routing": "5.0.0.0",
76
          "Microsoft.AspNetCore.Metadata": "5.0.0.0",
77
          "Microsoft.AspNetCore.Mvc.Abstractions": "5.0.0.0",
78
          "Microsoft.AspNetCore.Mvc.ApiExplorer": "5.0.0.0",
79
          "Microsoft.AspNetCore.Mvc.Core": "5.0.0.0",
80
          "Microsoft.AspNetCore.Mvc.Cors": "5.0.0.0",
81
          "Microsoft.AspNetCore.Mvc.DataAnnotations": "5.0.0.0",
82
          "Microsoft.AspNetCore.Mvc": "5.0.0.0",
83
          "Microsoft.AspNetCore.Mvc.Formatters.Json": "5.0.0.0",
84
          "Microsoft.AspNetCore.Mvc.Formatters.Xml": "5.0.0.0",
85
          "Microsoft.AspNetCore.Mvc.Localization": "5.0.0.0",
86
          "Microsoft.AspNetCore.Mvc.Razor": "5.0.0.0",
87
          "Microsoft.AspNetCore.Mvc.RazorPages": "5.0.0.0",
88
          "Microsoft.AspNetCore.Mvc.TagHelpers": "5.0.0.0",
89
          "Microsoft.AspNetCore.Mvc.ViewFeatures": "5.0.0.0",
90
          "Microsoft.AspNetCore.Razor": "5.0.0.0",
91
          "Microsoft.AspNetCore.Razor.Runtime": "5.0.0.0",
92
          "Microsoft.AspNetCore.ResponseCaching.Abstractions": "5.0.0.0",
93
          "Microsoft.AspNetCore.ResponseCaching": "5.0.0.0",
94
          "Microsoft.AspNetCore.ResponseCompression": "5.0.0.0",
95
          "Microsoft.AspNetCore.Rewrite": "5.0.0.0",
96
          "Microsoft.AspNetCore.Routing.Abstractions": "5.0.0.0",
97
          "Microsoft.AspNetCore.Routing": "5.0.0.0",
98
          "Microsoft.AspNetCore.Server.HttpSys": "5.0.0.0",
99
          "Microsoft.AspNetCore.Server.IIS": "5.0.0.0",
100
          "Microsoft.AspNetCore.Server.IISIntegration": "5.0.0.0",
101
          "Microsoft.AspNetCore.Server.Kestrel.Core": "5.0.0.0",
102
          "Microsoft.AspNetCore.Server.Kestrel": "5.0.0.0",
103
          "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets": "5.0.0.0",
104
          "Microsoft.AspNetCore.Session": "5.0.0.0",
105
          "Microsoft.AspNetCore.SignalR.Common": "5.0.0.0",
106
          "Microsoft.AspNetCore.SignalR.Core": "5.0.0.0",
107
          "Microsoft.AspNetCore.SignalR": "5.0.0.0",
108
          "Microsoft.AspNetCore.SignalR.Protocols.Json": "5.0.0.0",
109
          "Microsoft.AspNetCore.StaticFiles": "5.0.0.0",
110
          "Microsoft.AspNetCore.WebSockets": "5.0.0.0",
111
          "Microsoft.AspNetCore.WebUtilities": "5.0.0.0",
112
          "Microsoft.CSharp.Reference": "5.0.0.0",
113
          "Microsoft.Extensions.Caching.Abstractions.Reference": "5.0.0.0",
114
          "Microsoft.Extensions.Caching.Memory": "5.0.0.0",
115
          "Microsoft.Extensions.Configuration.Abstractions": "5.0.0.0",
116
          "Microsoft.Extensions.Configuration.Binder": "5.0.0.0",
117
          "Microsoft.Extensions.Configuration.CommandLine": "5.0.0.0",
118
          "Microsoft.Extensions.Configuration": "5.0.0.0",
119
          "Microsoft.Extensions.Configuration.EnvironmentVariables": "5.0.0.0",
120
          "Microsoft.Extensions.Configuration.FileExtensions": "5.0.0.0",
121
          "Microsoft.Extensions.Configuration.Ini": "5.0.0.0",
122
          "Microsoft.Extensions.Configuration.Json": "5.0.0.0",
123
          "Microsoft.Extensions.Configuration.KeyPerFile": "5.0.0.0",
124
          "Microsoft.Extensions.Configuration.UserSecrets": "5.0.0.0",
125
          "Microsoft.Extensions.Configuration.Xml": "5.0.0.0",
126
          "Microsoft.Extensions.DependencyInjection.Abstractions.Reference": "5.0.0.0",
127
          "Microsoft.Extensions.DependencyInjection.Reference": "5.0.0.0",
128
          "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "5.0.0.0",
129
          "Microsoft.Extensions.Diagnostics.HealthChecks": "5.0.0.0",
130
          "Microsoft.Extensions.FileProviders.Abstractions": "5.0.0.0",
131
          "Microsoft.Extensions.FileProviders.Composite": "5.0.0.0",
132
          "Microsoft.Extensions.FileProviders.Embedded": "5.0.0.0",
133
          "Microsoft.Extensions.FileProviders.Physical": "5.0.0.0",
134
          "Microsoft.Extensions.FileSystemGlobbing": "5.0.0.0",
135
          "Microsoft.Extensions.Hosting.Abstractions": "5.0.0.0",
136
          "Microsoft.Extensions.Hosting": "5.0.0.0",
137
          "Microsoft.Extensions.Http": "5.0.0.0",
138
          "Microsoft.Extensions.Localization.Abstractions": "5.0.0.0",
139
          "Microsoft.Extensions.Localization": "5.0.0.0",
140
          "Microsoft.Extensions.Logging.Abstractions.Reference": "5.0.0.0",
141
          "Microsoft.Extensions.Logging.Configuration": "5.0.0.0",
142
          "Microsoft.Extensions.Logging.Console": "5.0.0.0",
143
          "Microsoft.Extensions.Logging.Debug": "5.0.0.0",
144
          "Microsoft.Extensions.Logging.Reference": "5.0.0.0",
145
          "Microsoft.Extensions.Logging.EventLog": "5.0.0.0",
146
          "Microsoft.Extensions.Logging.EventSource": "5.0.0.0",
147
          "Microsoft.Extensions.Logging.TraceSource": "5.0.0.0",
148
          "Microsoft.Extensions.ObjectPool": "5.0.0.0",
149
          "Microsoft.Extensions.Options.ConfigurationExtensions": "5.0.0.0",
150
          "Microsoft.Extensions.Options.DataAnnotations": "5.0.0.0",
151
          "Microsoft.Extensions.Options.Reference": "5.0.0.0",
152
          "Microsoft.Extensions.Primitives.Reference": "5.0.0.0",
153
          "Microsoft.Extensions.WebEncoders": "5.0.0.0",
154
          "Microsoft.JSInterop": "5.0.0.0",
155
          "Microsoft.Net.Http.Headers": "5.0.0.0",
156
          "Microsoft.VisualBasic.Core": "10.0.6.0",
157
          "Microsoft.VisualBasic": "10.0.0.0",
158
          "Microsoft.Win32.Primitives": "5.0.0.0",
159
          "Microsoft.Win32.Registry": "5.0.0.0",
160
          "mscorlib": "4.0.0.0",
161
          "netstandard": "2.1.0.0",
162
          "System.AppContext": "5.0.0.0",
163
          "System.Buffers": "5.0.0.0",
... Rozdílový soubor je zkrácen, protože jeho délka přesahuje max. limit.

Také k dispozici: Unified diff