Skip to content

Commit 7656887

Browse files
Merge pull request #1257 from TechnologyEnhancedLearning/Develop/Features/TD-5790-Email-queueing-database-Save-Successful-email-transactions
TD-5790: Save Successful email transactions for One-off emails
2 parents 218d0da + 19b01d8 commit 7656887

File tree

38 files changed

+69
-50
lines changed

38 files changed

+69
-50
lines changed

AdminUI/LearningHub.Nhs.AdminUI/LearningHub.Nhs.AdminUI.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
<PackageReference Include="HtmlSanitizer" Version="6.0.453" />
9090
<PackageReference Include="IdentityModel" Version="4.6.0" />
9191
<PackageReference Include="LearningHub.Nhs.Caching" Version="2.0.2" />
92-
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.49" />
92+
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.50" />
9393
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.19.0" />
9494
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="6.0.36" />
9595
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.36" />

LearningHub.Nhs.WebUI.AutomatedUiTests/LearningHub.Nhs.WebUI.AutomatedUiTests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
<ItemGroup>
1414
<PackageReference Include="FluentAssertions" Version="6.12.0" />
15-
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.49" />
15+
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.50" />
1616
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.13" />
1717
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
1818
<PackageReference Include="Selenium.Axe" Version="4.0.19" />

LearningHub.Nhs.WebUI/LearningHub.Nhs.WebUI.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@
113113
<PackageReference Include="HtmlAgilityPack" Version="1.11.72" />
114114
<PackageReference Include="IdentityModel" Version="4.6.0" />
115115
<PackageReference Include="LearningHub.Nhs.Caching" Version="2.0.0" />
116-
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.49" />
116+
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.50" />
117117
<PackageReference Include="linqtotwitter" Version="6.9.0" />
118118
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.19.0" />
119119
<PackageReference Include="Microsoft.ApplicationInsights.EventCounterCollector" Version="2.21.0" />

MessageQueueing/LearningHub.Nhs.MessageQueueing.Database/LearningHub.Nhs.MessageQueueing.Database.sqlproj

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,14 @@
7171
<Build Include="Stored Procedures\GetQueueRequests.sql" />
7272
<Build Include="Stored Procedures\MessageDeliveryFailed.sql" />
7373
<Build Include="Stored Procedures\MessageDeliverySuccess.sql" />
74-
<Build Include="Stored Procedures\SaveFailedSingleEmail.sql" />
74+
<Build Include="Stored Procedures\SaveSingleEmailTransactions.sql" />
7575
<Build Include="User-Defined Table Types\QueueRequestTableType.sql" />
7676
</ItemGroup>
7777
<ItemGroup>
7878
<None Include="Scripts\Post-Deploy\Scripts\RequestStatusData.sql" />
7979
<None Include="Scripts\Post-Deploy\Scripts\RequestTypeData.sql" />
8080
</ItemGroup>
81+
<ItemGroup>
82+
<PostDeploy Include="Scripts\Post-Deploy\Script.PostDeployment.sql" />
83+
</ItemGroup>
8184
</Project>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/*
2+
Post-Deployment Script Template
3+
--------------------------------------------------------------------------------------
4+
This file contains SQL statements that will be appended to the build script.
5+
Use SQLCMD syntax to include a file in the post-deployment script.
6+
Example: :r .\myfile.sql
7+
Use SQLCMD syntax to reference a variable in the post-deployment script.
8+
Example: :setvar TableName MyTable
9+
SELECT * FROM [$(TableName)]
10+
--------------------------------------------------------------------------------------
11+
*/
12+
13+
:r .\Scripts\RequestStatusData.sql
14+
:r .\Scripts\RequestTypeData.sql

MessageQueueing/LearningHub.Nhs.MessageQueueing.Database/Stored Procedures/SaveFailedSingleEmail.sql renamed to MessageQueueing/LearningHub.Nhs.MessageQueueing.Database/Stored Procedures/SaveSingleEmailTransactions.sql

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
-------------------------------------------------------------------------------
22
-- Author Arunima George
33
-- Created 27-05-2025
4-
-- Purpose Save one-off(like otp emails) failed email request.
4+
-- Purpose Save all one-off(like otp) email request transactions.
55
--
66
-- Modification History
77
--
88
-- 27-05-2025 Arunima George Initial Revision
99
-------------------------------------------------------------------------------
1010

11-
CREATE PROCEDURE [dbo].[SaveFailedSingleEmail]
11+
CREATE PROCEDURE [dbo].[SaveSingleEmailTransactions]
1212
@Recipient nvarchar(255),
1313
@TemplateId nvarchar(50),
14-
@Personalisation nvarchar(max),
15-
@ErrorMessage nvarchar(max)
14+
@Personalisation nvarchar(max) = NULL,
15+
@Status int,
16+
@ErrorMessage nvarchar(max) = NULL
1617
AS
1718
BEGIN
1819
insert into [dbo].[QueueRequests] (RequestTypeId, Recipient, TemplateId, Personalisation, Status, CreatedAt, LastAttemptAt,ErrorMessage )
19-
values (3, @Recipient, @TemplateId, @Personalisation, 3, SYSDATETIMEOFFSET(), SYSDATETIMEOFFSET(), @ErrorMessage);
20+
values (3, @Recipient, @TemplateId, @Personalisation, @Status, SYSDATETIMEOFFSET(), SYSDATETIMEOFFSET(), @ErrorMessage);
2021
END
2122
GO

MessageQueueing/LearningHub.Nhs.MessageQueueing/EntityFramework/MessageQueueDbContext.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ public MessageQueueDbContextOptions Options
3131
get { return this.options; }
3232
}
3333

34-
////public virtual DbSet<QueueRequests> QueueRequests { get; set; }
35-
3634
/// <summary>
3735
/// Gets or sets the PendingMessageRequests.
3836
/// </summary>

MessageQueueing/LearningHub.Nhs.MessageQueueing/LearningHub.Nhs.MessageQueueing.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.49" />
10+
<PackageReference Include="LearningHub.Nhs.Models" Version="3.0.50" />
1111
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.20" />
1212
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.20" />
1313
</ItemGroup>

MessageQueueing/LearningHub.Nhs.MessageQueueing/Repositories/IMessageQueueRepository.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ public interface IMessageQueueRepository
3838
Task MessageDeliverySuccess(GovNotifyResponse response);
3939

4040
/// <summary>
41-
/// Save failed one-off email.
41+
/// Save one-off emails.
4242
/// </summary>
4343
/// <param name="request">The email request.</param>
4444
/// <returns>The <see cref="Task"/>.</returns>
45-
Task SaveFailedSingleEmail(SingleEmailFailedRequest request);
45+
Task SaveSingleEmailTransactions(SingleEmailRequest request);
4646
}
4747
}

MessageQueueing/LearningHub.Nhs.MessageQueueing/Repositories/MessageQueueRepository.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
namespace LearningHub.Nhs.MessageQueueing.Repositories
22
{
3+
using System;
34
using System.Collections.Generic;
45
using System.Data;
56
using System.Threading.Tasks;
@@ -74,17 +75,18 @@ public async Task MessageDeliveryFailed(GovNotifyResponse response)
7475
}
7576

7677
/// <summary>
77-
/// The Save failed Single Emails.
78+
/// The Save Single Emails.
7879
/// </summary>
7980
/// <param name="request">The request.</param>
8081
/// <returns>The <see cref="Task"/>.</returns>
81-
public async Task SaveFailedSingleEmail(SingleEmailFailedRequest request)
82+
public async Task SaveSingleEmailTransactions(SingleEmailRequest request)
8283
{
8384
var param0 = new SqlParameter("@p0", SqlDbType.NVarChar) { Value = request.Recipient };
8485
var param1 = new SqlParameter("@p1", SqlDbType.NVarChar) { Value = request.TemplateId };
85-
var param2 = new SqlParameter("@p2", SqlDbType.NVarChar) { Value = request.Personalisation };
86-
var param3 = new SqlParameter("@p3", SqlDbType.NVarChar) { Value = request.ErrorMessage };
87-
await this.dbContext.Database.ExecuteSqlRawAsync("dbo.SaveFailedSingleEmail @p0, @p1, @p2, @p3", param0, param1, param2, param3);
86+
var param2 = new SqlParameter("@p2", SqlDbType.NVarChar) { Value = request.Personalisation == null ? DBNull.Value : request.Personalisation };
87+
var param3 = new SqlParameter("@p3", SqlDbType.Int) { Value = request.Status };
88+
var param4 = new SqlParameter("@p4", SqlDbType.NVarChar) { Value = request.ErrorMessage == null ? DBNull.Value : request.ErrorMessage };
89+
await this.dbContext.Database.ExecuteSqlRawAsync("dbo.SaveSingleEmailTransactions @p0, @p1, @p2, @p3, @p4", param0, param1, param2, param3, param4);
8890
}
8991
}
9092
}

0 commit comments

Comments
 (0)