Skip to content

feat: merge develop to master#25

Merged
Morgana-Claw merged 11 commits intomasterfrom
develop
Apr 1, 2026
Merged

feat: merge develop to master#25
Morgana-Claw merged 11 commits intomasterfrom
develop

Conversation

@Morgana-Claw
Copy link
Copy Markdown
Collaborator

Merging latest changes from develop to master including user welcome email feature.

This commit establishes a comprehensive code quality foundation for the
solution:

- .editorconfig: Standardizes formatting rules (indentation, charset,
  naming conventions, code style preferences) across all editors
- Directory.Build.props: Centralizes common build properties
  (TargetFramework, Nullable, ImplicitUsings) and adds
  Microsoft.CodeAnalysis.NetAnalyzers for static analysis
- Updated all .csproj files: Removed properties now inherited from
  Directory.Build.props (TargetFramework, Nullable, ImplicitUsings),
  reducing duplication across 11 project files

Key settings:
- EnforceCodeStyleInBuild enabled for all configurations
- TreatWarningsAsErrors enabled in Release mode
- AnalysisLevel set to latest-recommended
- File-scoped namespaces encouraged
- Modern C# patterns (null-coalescing, pattern matching) suggested
The repository uses master as the default branch, but the CI workflow
was configured to monitor main and develop. This fixes the branch
trigger to match the actual default branch name.
The Worker project has been removed from ClientManager.sln but the
source files still existed in src/ClientManager.Worker/. This commit
removes the orphaned directory entirely.

No functional impact as the project was already excluded from the
solution.
- Exclude test projects from TreatWarningsAsErrors (CA1707 underscores)
- Add NoWarn for CA1848/CA1816/CA1000 (performance/style rules)
- Fix CA1822: make CleanDocument static in Customer.cs
- Fix CA1860: use Count == 0 instead of !Any() in Customer.cs
- Fix CA1305/CA1310: add CultureInfo.InvariantCulture and StringComparison.Ordinal
- Remove duplicate using directive in ServicesCollectionExtensions.cs
The Worker project was removed in a previous commit but the solution
still referenced it, causing MSB3202 build error in CI. This fix removes
the stale project reference so dotnet build succeeds.
- Add SendWelcomeEmailToUserAsync method to IEmailService interface
- Implement method in SmtpEmailService and SendGridEmailService with branded HTML template
- Inject IEmailService into AuthApplication and call it fire-and-forget after successful registration
- Email includes: congratulations message, next steps, ClientManager branding
- No PDF attachment (unlike customer welcome email)
- Update AuthApplicationTests to include IEmailService mock
…lService

CA1305 error in Release mode because int.Parse without IFormatProvider
varies by locale. This caused Docker build to fail on Render since
Directory.Build.props sets TreatWarningsAsErrors=true for Release.
Inject IEmailService into AuthApplication and call SendWelcomeEmailAsync
after successful user registration using fire-and-forget pattern. Email
failures are silently caught so they do not block the registration flow.

Update AuthApplicationTests to mock IEmailService in the test constructor.
feat: send welcome email after user registration
@Morgana-Claw Morgana-Claw merged commit a658343 into master Apr 1, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant