Skip to content

Commit d8288e3

Browse files
committed
Adding noop implementations for Sql persistence
1 parent a0e631b commit d8288e3

24 files changed

+652
-0
lines changed

src/ProjectReferences.Persisters.Primary.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
<ItemGroup Label="Persisters">
44
<ProjectReference Include="..\ServiceControl.Persistence.RavenDB\ServiceControl.Persistence.RavenDB.csproj" ReferenceOutputAssembly="false" Private="false" />
5+
<ProjectReference Include="..\ServiceControl.Persistence.Sql\ServiceControl.Persistence.Sql.csproj" ReferenceOutputAssembly="false" Private="false" />
56
</ItemGroup>
67

78
</Project>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[*.cs]
2+
dotnet_diagnostic.CA2007.severity = none
3+
dotnet_diagnostic.IDE0060.severity = none
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
namespace ServiceControl.Persistence.Sql;
2+
3+
using System.Collections.Generic;
4+
using System.Threading.Tasks;
5+
using ServiceControl.Persistence.Recoverability;
6+
using ServiceControl.Recoverability;
7+
8+
class NoOpArchiveMessages : IArchiveMessages
9+
{
10+
public Task ArchiveAllInGroup(string groupId) => Task.CompletedTask;
11+
12+
public Task UnarchiveAllInGroup(string groupId) => Task.CompletedTask;
13+
14+
public bool IsOperationInProgressFor(string groupId, ArchiveType archiveType) => false;
15+
16+
public bool IsArchiveInProgressFor(string groupId) => false;
17+
18+
public void DismissArchiveOperation(string groupId, ArchiveType archiveType)
19+
{
20+
}
21+
22+
public Task StartArchiving(string groupId, ArchiveType archiveType) => Task.CompletedTask;
23+
24+
public Task StartUnarchiving(string groupId, ArchiveType archiveType) => Task.CompletedTask;
25+
26+
public IEnumerable<InMemoryArchive> GetArchivalOperations() => [];
27+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
namespace ServiceControl.Persistence.Sql;
2+
3+
using System.Threading.Tasks;
4+
using ServiceControl.Operations.BodyStorage;
5+
6+
class NoOpBodyStorage : IBodyStorage
7+
{
8+
public Task<MessageBodyStreamResult> TryFetch(string bodyId) =>
9+
Task.FromResult(new MessageBodyStreamResult { HasResult = false });
10+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
namespace ServiceControl.Persistence.Sql;
2+
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Threading.Tasks;
6+
using ServiceControl.Contracts.CustomChecks;
7+
using ServiceControl.CustomChecks;
8+
using ServiceControl.Persistence;
9+
using ServiceControl.Persistence.Infrastructure;
10+
11+
class NoOpCustomChecksDataStore : ICustomChecksDataStore
12+
{
13+
public Task<CheckStateChange> UpdateCustomCheckStatus(CustomCheckDetail detail) =>
14+
Task.FromResult(CheckStateChange.Unchanged);
15+
16+
public Task<QueryResult<IList<CustomCheck>>> GetStats(PagingInfo paging, string status = null) =>
17+
Task.FromResult(new QueryResult<IList<CustomCheck>>([], QueryStatsInfo.Zero));
18+
19+
public Task DeleteCustomCheck(Guid id) => Task.CompletedTask;
20+
21+
public Task<int> GetNumberOfFailedChecks() => Task.FromResult(0);
22+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
namespace ServiceControl.Persistence.Sql;
2+
3+
using System.Collections.Generic;
4+
using System.Threading;
5+
using System.Threading.Tasks;
6+
using ServiceControl.Operations;
7+
using ServiceControl.Persistence;
8+
9+
class NoOpEndpointSettingsStore : IEndpointSettingsStore
10+
{
11+
public async IAsyncEnumerable<EndpointSettings> GetAllEndpointSettings()
12+
{
13+
await Task.CompletedTask;
14+
yield break;
15+
}
16+
17+
public Task UpdateEndpointSettings(EndpointSettings settings, CancellationToken token) => Task.CompletedTask;
18+
19+
public Task Delete(string name, CancellationToken cancellationToken) => Task.CompletedTask;
20+
}
Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
namespace ServiceControl.Persistence.Sql;
2+
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Threading.Tasks;
6+
using ServiceControl.CompositeViews.Messages;
7+
using ServiceControl.EventLog;
8+
using ServiceControl.MessageFailures;
9+
using ServiceControl.MessageFailures.Api;
10+
using ServiceControl.Notifications;
11+
using ServiceControl.Operations;
12+
using ServiceControl.Persistence;
13+
using ServiceControl.Persistence.Infrastructure;
14+
using ServiceControl.Recoverability;
15+
16+
class NoOpErrorMessageDataStore : IErrorMessageDataStore
17+
{
18+
static readonly QueryResult<IList<MessagesView>> EmptyMessagesViewResult =
19+
new([], QueryStatsInfo.Zero);
20+
21+
static readonly QueryResult<IList<FailedMessageView>> EmptyFailedMessageViewResult =
22+
new([], QueryStatsInfo.Zero);
23+
24+
static readonly QueryResult<IList<FailureGroupView>> EmptyFailureGroupViewResult =
25+
new([], QueryStatsInfo.Zero);
26+
27+
static readonly QueryStatsInfo EmptyQueryStatsInfo = QueryStatsInfo.Zero;
28+
29+
public Task<QueryResult<IList<MessagesView>>> GetAllMessages(PagingInfo pagingInfo, SortInfo sortInfo,
30+
bool includeSystemMessages, DateTimeRange timeSentRange = null) =>
31+
Task.FromResult(EmptyMessagesViewResult);
32+
33+
public Task<QueryResult<IList<MessagesView>>> GetAllMessagesForEndpoint(string endpointName,
34+
PagingInfo pagingInfo, SortInfo sortInfo, bool includeSystemMessages, DateTimeRange timeSentRange = null) =>
35+
Task.FromResult(EmptyMessagesViewResult);
36+
37+
public Task<QueryResult<IList<MessagesView>>> GetAllMessagesByConversation(string conversationId,
38+
PagingInfo pagingInfo, SortInfo sortInfo, bool includeSystemMessages) =>
39+
Task.FromResult(EmptyMessagesViewResult);
40+
41+
public Task<QueryResult<IList<MessagesView>>> GetAllMessagesForSearch(string searchTerms, PagingInfo pagingInfo,
42+
SortInfo sortInfo, DateTimeRange timeSentRange = null) =>
43+
Task.FromResult(EmptyMessagesViewResult);
44+
45+
public Task<QueryResult<IList<MessagesView>>> SearchEndpointMessages(string endpointName, string searchKeyword,
46+
PagingInfo pagingInfo, SortInfo sortInfo, DateTimeRange timeSentRange = null) =>
47+
Task.FromResult(EmptyMessagesViewResult);
48+
49+
public Task FailedMessageMarkAsArchived(string failedMessageId) => Task.CompletedTask;
50+
51+
public Task<FailedMessage[]> FailedMessagesFetch(Guid[] ids) => Task.FromResult(Array.Empty<FailedMessage>());
52+
53+
public Task StoreFailedErrorImport(FailedErrorImport failure) => Task.CompletedTask;
54+
55+
public Task<IEditFailedMessagesManager> CreateEditFailedMessageManager() =>
56+
Task.FromResult<IEditFailedMessagesManager>(new NoOpEditFailedMessagesManager());
57+
58+
public Task<QueryResult<FailureGroupView>> GetFailureGroupView(string groupId, string status, string modified) =>
59+
Task.FromResult(new QueryResult<FailureGroupView>(null, EmptyQueryStatsInfo));
60+
61+
public Task<IList<FailureGroupView>> GetFailureGroupsByClassifier(string classifier) =>
62+
Task.FromResult<IList<FailureGroupView>>([]);
63+
64+
public Task<QueryResult<IList<FailedMessageView>>> ErrorGet(string status, string modified, string queueAddress,
65+
PagingInfo pagingInfo, SortInfo sortInfo) =>
66+
Task.FromResult(EmptyFailedMessageViewResult);
67+
68+
public Task<QueryStatsInfo> ErrorsHead(string status, string modified, string queueAddress) =>
69+
Task.FromResult(EmptyQueryStatsInfo);
70+
71+
public Task<QueryResult<IList<FailedMessageView>>> ErrorsByEndpointName(string status, string endpointName,
72+
string modified, PagingInfo pagingInfo, SortInfo sortInfo) =>
73+
Task.FromResult(EmptyFailedMessageViewResult);
74+
75+
public Task<IDictionary<string, object>> ErrorsSummary() =>
76+
Task.FromResult<IDictionary<string, object>>(new Dictionary<string, object>());
77+
78+
public Task<FailedMessageView> ErrorLastBy(string failedMessageId) =>
79+
Task.FromResult<FailedMessageView>(null);
80+
81+
public Task<FailedMessage> ErrorBy(string failedMessageId) =>
82+
Task.FromResult<FailedMessage>(null);
83+
84+
public Task<INotificationsManager> CreateNotificationsManager() =>
85+
Task.FromResult<INotificationsManager>(new NoOpNotificationsManager());
86+
87+
public Task EditComment(string groupId, string comment) => Task.CompletedTask;
88+
89+
public Task DeleteComment(string groupId) => Task.CompletedTask;
90+
91+
public Task<QueryResult<IList<FailedMessageView>>> GetGroupErrors(string groupId, string status, string modified,
92+
SortInfo sortInfo, PagingInfo pagingInfo) =>
93+
Task.FromResult(EmptyFailedMessageViewResult);
94+
95+
public Task<QueryStatsInfo> GetGroupErrorsCount(string groupId, string status, string modified) =>
96+
Task.FromResult(EmptyQueryStatsInfo);
97+
98+
public Task<QueryResult<IList<FailureGroupView>>> GetGroup(string groupId, string status, string modified) =>
99+
Task.FromResult(EmptyFailureGroupViewResult);
100+
101+
public Task<bool> MarkMessageAsResolved(string failedMessageId) => Task.FromResult(false);
102+
103+
public Task ProcessPendingRetries(DateTime periodFrom, DateTime periodTo, string queueAddress,
104+
Func<string, Task> processCallback) => Task.CompletedTask;
105+
106+
public Task<string[]> UnArchiveMessagesByRange(DateTime from, DateTime to) =>
107+
Task.FromResult(Array.Empty<string>());
108+
109+
public Task<string[]> UnArchiveMessages(IEnumerable<string> failedMessageIds) =>
110+
Task.FromResult(Array.Empty<string>());
111+
112+
public Task RevertRetry(string messageUniqueId) => Task.CompletedTask;
113+
114+
public Task RemoveFailedMessageRetryDocument(string uniqueMessageId) => Task.CompletedTask;
115+
116+
public Task<string[]> GetRetryPendingMessages(DateTime from, DateTime to, string queueAddress) =>
117+
Task.FromResult(Array.Empty<string>());
118+
119+
public Task<byte[]> FetchFromFailedMessage(string uniqueMessageId) =>
120+
Task.FromResult<byte[]>(null);
121+
122+
public Task StoreEventLogItem(EventLogItem logItem) => Task.CompletedTask;
123+
124+
public Task StoreFailedMessagesForTestsOnly(params FailedMessage[] failedMessages) => Task.CompletedTask;
125+
126+
class NoOpEditFailedMessagesManager : IEditFailedMessagesManager
127+
{
128+
public void Dispose()
129+
{
130+
}
131+
132+
public Task<FailedMessage> GetFailedMessage(string failedMessageId) =>
133+
Task.FromResult<FailedMessage>(null);
134+
135+
public Task<string> GetCurrentEditingRequestId(string failedMessageId) =>
136+
Task.FromResult<string>(null);
137+
138+
public Task SetCurrentEditingRequestId(string editingMessageId) => Task.CompletedTask;
139+
140+
public Task SetFailedMessageAsResolved() => Task.CompletedTask;
141+
142+
public Task UpdateFailedMessageBody(string uniqueMessageId, byte[] newBody) => Task.CompletedTask;
143+
144+
public Task SaveChanges() => Task.CompletedTask;
145+
}
146+
147+
class NoOpNotificationsManager : INotificationsManager
148+
{
149+
public void Dispose()
150+
{
151+
}
152+
153+
public Task<NotificationsSettings> LoadSettings(TimeSpan? cacheTimeout = null) =>
154+
Task.FromResult<NotificationsSettings>(null);
155+
156+
public Task UpdateFailedMessageGroupDetails(string groupId, string title, FailedMessageStatus status) =>
157+
Task.CompletedTask;
158+
159+
public Task SaveChanges() => Task.CompletedTask;
160+
}
161+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
namespace ServiceControl.Persistence.Sql;
2+
3+
using System.Collections.Generic;
4+
using System.Threading.Tasks;
5+
using ServiceControl.EventLog;
6+
using ServiceControl.Persistence;
7+
using ServiceControl.Persistence.Infrastructure;
8+
9+
class NoOpEventLogDataStore : IEventLogDataStore
10+
{
11+
public Task Add(EventLogItem logItem) => Task.CompletedTask;
12+
13+
public Task<(IList<EventLogItem> items, long total, string version)> GetEventLogItems(PagingInfo pagingInfo) =>
14+
Task.FromResult<(IList<EventLogItem>, long, string)>(([], 0, string.Empty));
15+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
namespace ServiceControl.Persistence.Sql;
2+
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Threading;
6+
using System.Threading.Tasks;
7+
using ServiceControl.ExternalIntegrations;
8+
using ServiceControl.Persistence;
9+
10+
class NoOpExternalIntegrationRequestsDataStore : IExternalIntegrationRequestsDataStore
11+
{
12+
public void Subscribe(Func<object[], Task> callback)
13+
{
14+
}
15+
16+
public Task StoreDispatchRequest(IEnumerable<ExternalIntegrationDispatchRequest> dispatchRequests) =>
17+
Task.CompletedTask;
18+
19+
public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
20+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
namespace ServiceControl.Persistence.Sql;
2+
3+
using System;
4+
using System.Threading;
5+
using System.Threading.Tasks;
6+
using ServiceControl.MessageFailures;
7+
using ServiceControl.Operations;
8+
using ServiceControl.Persistence;
9+
10+
class NoOpFailedErrorImportDataStore : IFailedErrorImportDataStore
11+
{
12+
public Task ProcessFailedErrorImports(Func<FailedTransportMessage, Task> processMessage,
13+
CancellationToken cancellationToken) => Task.CompletedTask;
14+
15+
public Task<bool> QueryContainsFailedImports() => Task.FromResult(false);
16+
}

0 commit comments

Comments
 (0)