• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

loresoft / MediatR.CommandQuery / 11956354083

21 Nov 2024 03:25PM UTC coverage: 60.35% (+1.2%) from 59.17%
11956354083

push

github

pwelter34
add DispatcherDataService

402 of 761 branches covered (52.83%)

Branch coverage included in aggregate %.

64 of 87 new or added lines in 3 files covered. (73.56%)

1 existing line in 1 file now uncovered.

1289 of 2041 relevant lines covered (63.16%)

19.97 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

39.22
/src/MediatR.CommandQuery/MediatorServiceExtensions.cs
1
using FluentValidation;
2

3
using MediatR.CommandQuery.Behaviors;
4
using MediatR.CommandQuery.Commands;
5
using MediatR.CommandQuery.Definitions;
6
using MediatR.CommandQuery.Dispatcher;
7
using MediatR.CommandQuery.Queries;
8
using MediatR.CommandQuery.Services;
9
using MediatR.NotificationPublishers;
10

11
using Microsoft.Extensions.DependencyInjection;
12
using Microsoft.Extensions.DependencyInjection.Extensions;
13

14
namespace MediatR.CommandQuery;
15

16
public static class MediatorServiceExtensions
17
{
18
    public static IServiceCollection AddMediator(this IServiceCollection services, ServiceLifetime lifetime = ServiceLifetime.Transient)
19
    {
20
        ArgumentNullException.ThrowIfNull(services);
4✔
21

22
        services.TryAdd(new ServiceDescriptor(typeof(IMediator), typeof(Mediator), lifetime));
4✔
23
        services.TryAdd(new ServiceDescriptor(typeof(ISender), (sp) => sp.GetRequiredService<IMediator>(), lifetime));
6✔
24
        services.TryAdd(new ServiceDescriptor(typeof(IPublisher), (sp) => sp.GetRequiredService<IMediator>(), lifetime));
4✔
25
        services.TryAdd(new ServiceDescriptor(typeof(INotificationPublisher), typeof(TaskWhenAllPublisher), lifetime));
4✔
26

27
        services.TryAddSingleton<IPrincipalReader, PrincipalReader>();
4✔
28

29
        return services;
4✔
30
    }
31

32
    public static IServiceCollection AddValidatorsFromAssembly<T>(this IServiceCollection services)
33
    {
34
        ArgumentNullException.ThrowIfNull(services);
4✔
35

36
        // Register validators
37
        var scanner = AssemblyScanner.FindValidatorsInAssemblyContaining<T>();
4✔
38
        foreach (var scanResult in scanner)
136✔
39
        {
40
            //Register as interface
41
            services.TryAdd(new ServiceDescriptor(scanResult.InterfaceType, scanResult.ValidatorType, ServiceLifetime.Singleton));
64✔
42
            //Register as self
43
            services.TryAdd(new ServiceDescriptor(scanResult.ValidatorType, scanResult.ValidatorType, ServiceLifetime.Singleton));
64✔
44
        }
45

46
        return services;
4✔
47
    }
48

49

50
    public static IServiceCollection AddRemoteDispatcher(this IServiceCollection services)
51
    {
52
        ArgumentNullException.ThrowIfNull(services);
×
53

54
        // up to client to register RemoteDispatcher with correct HttpClient
55
        services.TryAddTransient<IDispatcher>(sp => sp.GetRequiredService<RemoteDispatcher>());
×
56
        services.AddOptions<DispatcherOptions>();
×
57

NEW
58
        services.TryAddTransient<IDispatcherDataService, DispatcherDataService>();
×
59

UNCOV
60
        return services;
×
61
    }
62

63
    public static IServiceCollection AddServerDispatcher(this IServiceCollection services)
64
    {
65
        ArgumentNullException.ThrowIfNull(services);
2✔
66

67
        services.TryAddTransient<IDispatcher, MediatorDispatcher>();
2✔
68
        services.AddOptions<DispatcherOptions>();
2✔
69

70
        services.TryAddTransient<IDispatcherDataService, DispatcherDataService>();
2✔
71

72
        return services;
2✔
73
    }
74

75

76
    public static IServiceCollection AddEntityQueryMemoryCache<TKey, TReadModel>(this IServiceCollection services)
77
    {
78
        ArgumentNullException.ThrowIfNull(services);
×
79

80
        services.AddTransient<IPipelineBehavior<EntityIdentifierQuery<TKey, TReadModel>, TReadModel>, MemoryCacheQueryBehavior<EntityIdentifierQuery<TKey, TReadModel>, TReadModel>>();
×
81
        services.AddTransient<IPipelineBehavior<EntityIdentifiersQuery<TKey, TReadModel>, IReadOnlyCollection<TReadModel>>, MemoryCacheQueryBehavior<EntityIdentifiersQuery<TKey, TReadModel>, IReadOnlyCollection<TReadModel>>>();
×
82
        services.AddTransient<IPipelineBehavior<EntityPagedQuery<TReadModel>, EntityPagedResult<TReadModel>>, MemoryCacheQueryBehavior<EntityPagedQuery<TReadModel>, EntityPagedResult<TReadModel>>>();
×
83
        services.AddTransient<IPipelineBehavior<EntitySelectQuery<TReadModel>, IReadOnlyCollection<TReadModel>>, MemoryCacheQueryBehavior<EntitySelectQuery<TReadModel>, IReadOnlyCollection<TReadModel>>>();
×
84

85
        return services;
×
86
    }
87

88
    public static IServiceCollection AddEntityQueryDistributedCache<TKey, TReadModel>(this IServiceCollection services)
89
    {
90
        ArgumentNullException.ThrowIfNull(services);
×
91

92
        services.AddTransient<IPipelineBehavior<EntityIdentifierQuery<TKey, TReadModel>, TReadModel>, DistributedCacheQueryBehavior<EntityIdentifierQuery<TKey, TReadModel>, TReadModel>>();
×
93
        services.AddTransient<IPipelineBehavior<EntityIdentifiersQuery<TKey, TReadModel>, IReadOnlyCollection<TReadModel>>, DistributedCacheQueryBehavior<EntityIdentifiersQuery<TKey, TReadModel>, IReadOnlyCollection<TReadModel>>>();
×
94
        services.AddTransient<IPipelineBehavior<EntityPagedQuery<TReadModel>, EntityPagedResult<TReadModel>>, DistributedCacheQueryBehavior<EntityPagedQuery<TReadModel>, EntityPagedResult<TReadModel>>>();
×
95
        services.AddTransient<IPipelineBehavior<EntitySelectQuery<TReadModel>, IReadOnlyCollection<TReadModel>>, DistributedCacheQueryBehavior<EntitySelectQuery<TReadModel>, IReadOnlyCollection<TReadModel>>>();
×
96

97
        return services;
×
98
    }
99

100
    public static IServiceCollection AddEntityHybridCache<TKey, TReadModel>(this IServiceCollection services)
101
    {
102
        ArgumentNullException.ThrowIfNull(services);
×
103

104
        services.AddTransient<IPipelineBehavior<EntityIdentifierQuery<TKey, TReadModel>, TReadModel>, HybridCacheQueryBehavior<EntityIdentifierQuery<TKey, TReadModel>, TReadModel>>();
×
105
        services.AddTransient<IPipelineBehavior<EntityIdentifiersQuery<TKey, TReadModel>, IReadOnlyCollection<TReadModel>>, HybridCacheQueryBehavior<EntityIdentifiersQuery<TKey, TReadModel>, IReadOnlyCollection<TReadModel>>>();
×
106
        services.AddTransient<IPipelineBehavior<EntityPagedQuery<TReadModel>, EntityPagedResult<TReadModel>>, HybridCacheQueryBehavior<EntityPagedQuery<TReadModel>, EntityPagedResult<TReadModel>>>();
×
107
        services.AddTransient<IPipelineBehavior<EntitySelectQuery<TReadModel>, IReadOnlyCollection<TReadModel>>, HybridCacheQueryBehavior<EntitySelectQuery<TReadModel>, IReadOnlyCollection<TReadModel>>>();
×
108

109
        return services;
×
110
    }
111

112
    public static IServiceCollection AddEntityHybridCache<TKey, TReadModel, TCreateModel, TUpdateModel>(this IServiceCollection services)
113
    {
114
        ArgumentNullException.ThrowIfNull(services);
×
115

116
        services.AddEntityHybridCache<TKey, TReadModel>();
×
117

118
        services.AddTransient<IPipelineBehavior<EntityCreateCommand<TCreateModel, TReadModel>, TReadModel>, HybridCacheExpireBehavior<EntityCreateCommand<TCreateModel, TReadModel>, TReadModel>>();
×
119
        services.AddTransient<IPipelineBehavior<EntityUpdateCommand<TKey, TUpdateModel, TReadModel>, TReadModel>, HybridCacheExpireBehavior<EntityUpdateCommand<TKey, TUpdateModel, TReadModel>, TReadModel>>();
×
120
        services.AddTransient<IPipelineBehavior<EntityUpsertCommand<TKey, TUpdateModel, TReadModel>, TReadModel>, HybridCacheExpireBehavior<EntityUpsertCommand<TKey, TUpdateModel, TReadModel>, TReadModel>>();
×
121
        services.AddTransient<IPipelineBehavior<EntityPatchCommand<TKey, TReadModel>, TReadModel>, HybridCacheExpireBehavior<EntityPatchCommand<TKey, TReadModel>, TReadModel>>();
×
122
        services.AddTransient<IPipelineBehavior<EntityDeleteCommand<TKey, TReadModel>, TReadModel>, HybridCacheExpireBehavior<EntityDeleteCommand<TKey, TReadModel>, TReadModel>>();
×
123

124
        return services;
×
125
    }
126
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc