Skip to content

MMI-3382 Replace CHES#2553

Open
Fosol wants to merge 1 commit intobcgov:devfrom
Fosol:mmi-3382
Open

MMI-3382 Replace CHES#2553
Fosol wants to merge 1 commit intobcgov:devfrom
Fosol:mmi-3382

Conversation

@Fosol
Copy link
Collaborator

@Fosol Fosol commented Feb 20, 2026

The current CHES implementation has been one of the primary challenges to support. This update removes CHES and uses SMTP directly.

There is now a SMTP Retry Service that will replace the CHES Retry Service. It will review failed reports and notifications emails and retry sending them to the SMTP server.

Every service needed to be updated to switch to SMTP.

Summary

  • Update all services
  • Add DB migration 1.5
  • Update DevOps

Update all services
Add DB migration 1.5
Update DevOps
@Fosol Fosol self-assigned this Feb 20, 2026
@Fosol Fosol added enhancement New feature or request DB Migration A DB Migration may require refreshing or simply updating your database. devops DevOps templates, documentation, configuration, tools. labels Feb 20, 2026
// Use hover for the description of the existing attributes
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
"name": "Run Ches Retry Service",
"name": "Run SMTP Retry Service",
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replaced CHES with SMTP

using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Options;
using TNO.Ches;
using MMI.SmtpEmail;
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replaced CHES with SMTP

[ProducesResponseType(typeof(UserAVOverviewInstanceModel), (int)HttpStatusCode.OK)]
[ProducesResponseType(typeof(ErrorResponseModel), (int)HttpStatusCode.BadRequest)]
[SwaggerOperation(Tags = new[] { "Evening Overview" })]
public IActionResult GetUserAVOverviewInstanceAsync(long id, int userId)
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New endpoint so that our SMTP Retry Service can update each record.

[ProducesResponseType(typeof(UserReportInstanceModel), (int)HttpStatusCode.OK)]
[ProducesResponseType(typeof(ErrorResponseModel), (int)HttpStatusCode.BadRequest)]
[SwaggerOperation(Tags = new[] { "Report" })]
public IActionResult GetUserReportInstancesAsync(long id, int userId)
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New endpoint so that our SMTP Retry Service can update each instance.


RUN dotnet restore
RUN dotnet publish "TNO.API.csproj" -c "$BUILD_CONFIGURATION" -o /app/publish
RUN dotnet publish "TNO.API.csproj" -c "$BUILD_CONFIGURATION" -r linux-x64 --self-contained false -o /app/publish /p:PublishTrimmed=false
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed build issues

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've kept the CHES project for now. But updated it to that it will build.

builder.Property(m => m.TemplateType).IsRequired();
builder.Property(m => m.PublishedOn).IsRequired();
builder.Property(m => m.IsPublished).IsRequired();
builder.Property(m => m.Status).IsRequired();
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New fields are so that the SMTP Retry Service will work. We now capture the outgoing email details.

builder.Property(m => m.Status).IsRequired();
builder.Property(m => m.Subject).IsRequired().HasColumnType("text");
builder.Property(m => m.Body).IsRequired().HasColumnType("text");
builder.Property(m => m.LinkOnlyBody).IsRequired().HasColumnType("text");
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need this so that the SMTP Retry Service can resend emails that only contain the report link.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DB Migration A DB Migration may require refreshing or simply updating your database. devops DevOps templates, documentation, configuration, tools. enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant