aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar vnugent <public@vaughnnugent.com>2023-08-01 18:39:02 -0400
committerLibravatar vnugent <public@vaughnnugent.com>2023-08-01 18:39:02 -0400
commit405dfd778ab4fdcb00e619bdd4baec611536e3aa (patch)
tree0a468f392e4e46b9c42bb6514f9cab60beca78ff
parent95639dd736f78d44a007e68ecf6e9bdbb5dc4b78 (diff)
Latest updates, build configurations, and native compression
-rw-r--r--.gitignore9
-rw-r--r--Module.Taskfile.yaml68
-rw-r--r--README.md10
-rw-r--r--Taskfile.yaml75
-rw-r--r--emails.transactional.build.sln49
-rw-r--r--lib/Emails.Transactional.Client/src/Emails.Transactional.Client.xml311
-rw-r--r--lib/Emails.Transactional.Plugin/src/Api Endpoints/SendEndpoint.cs2
7 files changed, 202 insertions, 322 deletions
diff --git a/.gitignore b/.gitignore
index 33f007f..63641d6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -472,12 +472,5 @@ FodyWeavers.xsd
# Additional files built by Visual Studio
# End of https://www.toptal.com/developers/gitignore/api/c,c++,visualstudio
-/VNLib.Utils
-*.json
-*.sln
-
-/.task/checksum
-*[Tt]askfile.*
-
-*.ps1 \ No newline at end of file
+*.json \ No newline at end of file
diff --git a/Module.Taskfile.yaml b/Module.Taskfile.yaml
new file mode 100644
index 0000000..d729ea3
--- /dev/null
+++ b/Module.Taskfile.yaml
@@ -0,0 +1,68 @@
+# https://taskfile.dev
+
+#Called by the vnbuild system to produce builds for my website
+#https://www.vaughnnugent.com/resources/software
+
+#This taskfile performs the build operations for a module, it handles
+#git code updates, msbuild on solutions, and sleet NuGet feed pushes.
+
+#this file must be in the same directory as the solution file
+
+version: '3'
+
+vars:
+ INT_DIR: '{{.SCRATCH_DIR}}/obj/{{.MODULE_NAME}}/'
+ MS_ARGS: '/p:RunAnalyzersDuringBuild=false /p:IntermediateOutputPath="{{.INT_DIR}}" /p:UseCommonOutputDirectory=true /p:BuildInParallel=true /p:MultiProcessorCompilation=true'
+ PACK_OUT: '{{.OUTPUT_DIR}}/{{.HEAD_SHA}}/pkg'
+
+tasks:
+
+#called by build pipeline to sync repo
+ update:
+ cmds:
+ - git remote update
+ - git reset --hard
+ - git pull origin {{.BRANCH_NAME}} --verify-signatures
+
+#called by build pipeline to build module
+ build:
+ cmds:
+ - echo "building module {{.MODULE_NAME}}"
+
+ #re-write semver after hard reset, before build
+ - dotnet-gitversion.exe /updateprojectfiles
+
+ #build debug mode first
+ - task: build_debug
+ - task: build_release
+
+ postbuild_success:
+ cmds:
+ #push packages to the sleet feed (feed path is vnbuild global)
+ - sleet push "{{.PACK_OUT}}/debug/" --source debug --config "{{.SLEET_CONFIG_PATH}}" --force
+ - sleet push "{{.PACK_OUT}}/release/" --source release --config "{{.SLEET_CONFIG_PATH}}" --force
+
+ postbuild_failed:
+ cmds:
+ - echo "postbuild failed {{.MODULE_NAME}}"
+
+#called by build pipeline to clean module
+ clean:
+ cmds:
+ #clean solution
+ - dotnet clean /p:BuildInParallel=true /p:MultiProcessorCompilation=true
+
+
+#Internal tasks
+ build_debug:
+ internal: true
+ cmds:
+ - dotnet publish -c debug {{.MS_ARGS}}
+ - dotnet pack -c debug {{.MS_ARGS}} -o "{{.PACK_OUT}}/debug/"
+
+ build_release:
+ internal: true
+ cmds:
+ - dotnet publish -c release {{.MS_ARGS}}
+ - dotnet pack -c release {{.MS_ARGS}} -o "{{.PACK_OUT}}/release/"
+ \ No newline at end of file
diff --git a/README.md b/README.md
index dae0c07..1051ca7 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,14 @@
# Emails.Transactional
*A collection of libraries for building and using a transactional email service, with OAuth2 authentication*
-#### Builds
-Debug build w/ symbols & xml docs, release builds, NuGet packages, and individually packaged source code are available on my [website](https://www.vaughnnugent.com/resources/software). All tar-gzip (.tgz) files will have an associated .sha384 appended checksum of the desired download file.
+## Builds
+Debug build w/ symbols & xml docs, release builds, NuGet packages, and individually packaged source code are available on my website (link below). All tar-gzip (.tgz) files will have an associated .sha256 appended checksum of the desired download file.
+
+## Docs and Guides
+Documentation, specifications, and setup guides are available on my website.
+
+[Docs and Articles](https://www.vaughnnugent.com/resources/software/articles?tags=docs,_emails.transactional)
+[Builds and Source](https://www.vaughnnugent.com/resources/software/modules/VNLib.Core)
## License
All source files in this repository is licensed under the GNU Affero General Public License (or any later version). See the LICENSE files for more information. \ No newline at end of file
diff --git a/Taskfile.yaml b/Taskfile.yaml
new file mode 100644
index 0000000..b16b082
--- /dev/null
+++ b/Taskfile.yaml
@@ -0,0 +1,75 @@
+# https://taskfile.dev
+
+#Called by the vnbuild system to produce builds for my website
+#https://www.vaughnnugent.com/resources/software
+
+#This taskfile is called from the root of a project that is being built
+#and the purpose of this taskfile is to package up the output of a build
+#from the solution file, and package it up into a tgz files for distribution
+
+version: '3'
+
+vars:
+ TARGET: '{{.USER_WORKING_DIR}}/bin'
+ RELEASE_DIR: "./bin/release/{{.TARGET_FRAMEWORK}}/publish"
+ SOURCE_OUT: "{{.USER_WORKING_DIR}}/bin/source"
+
+tasks:
+
+ #when build succeeds, archive the output into a tgz
+ postbuild_success:
+ dir: '{{.USER_WORKING_DIR}}'
+ cmds:
+ #pack up source code
+ - task: packsource
+
+ #run post in debug mode
+ - task: postbuild
+ vars: { BUILD_MODE: debug }
+
+ #remove uncessary files from the release dir
+ - powershell -Command "Get-ChildItem -Recurse '{{.RELEASE_DIR}}/' -Include *.pdb,*.xml | Remove-Item"
+
+ #run post in release mode
+ - task: postbuild
+ vars: { BUILD_MODE: release }
+
+
+ postbuild_failed:
+ dir: '{{.USER_WORKING_DIR}}'
+ cmds:
+ - echo "postbuild failed {{.PROJECT_NAME}}"
+
+
+ postbuild:
+ dir: '{{.USER_WORKING_DIR}}'
+ internal: true
+ vars:
+ #the build output directory
+ BUILD_OUT: "{{.USER_WORKING_DIR}}/bin/{{.BUILD_MODE}}/{{.TARGET_FRAMEWORK}}/publish"
+
+ cmds:
+
+ #copy license and readme to target
+ - cd .. && powershell -Command "Copy-Item -Path ./LICENSE.txt -Destination '{{.BUILD_OUT}}/license.txt'"
+ - cd .. && powershell -Command "Copy-Item -Path ./build.readme.md -Destination '{{.BUILD_OUT}}/readme.md'"
+
+ #tar outputs
+ - cd "{{.BUILD_OUT}}" && tar -czf "{{.TARGET}}/{{.BUILD_MODE}}.tgz" .
+
+ packsource:
+ dir: '{{.USER_WORKING_DIR}}'
+ internal: true
+ cmds:
+ #copy source code to target
+ - powershell -Command "Get-ChildItem -Include *.cs,*.csproj -Recurse | Where { \$_.FullName -notlike '*\obj\*' -and \$_.FullName -notlike '*\bin\*' } | Resolve-Path -Relative | tar --files-from - -czf '{{.TARGET}}/src.tgz'"
+
+
+#Remove the output dirs on clean
+ clean:
+ dir: '{{.USER_WORKING_DIR}}'
+ cmds:
+ - cmd: powershell Remove-Item -Recurse './bin'
+ ignore_error: true
+ - cmd: powershell Remove-Item -Recurse './obj'
+ ignore_error: true
diff --git a/emails.transactional.build.sln b/emails.transactional.build.sln
new file mode 100644
index 0000000..3fd2b99
--- /dev/null
+++ b/emails.transactional.build.sln
@@ -0,0 +1,49 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.31903.59
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Emails.Transactional.Client", "lib\Emails.Transactional.Client\src\Emails.Transactional.Client.csproj", "{A13E6674-10A6-44FC-AEA2-A56A1ABBB3BF}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Emails.Transactional.Client.Extensions", "lib\Emails.Transactional.Extensions\src\Emails.Transactional.Client.Extensions.csproj", "{260663D6-4BFA-40B3-9701-9F06DC1122D9}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Transactional Emails", "lib\Emails.Transactional.Plugin\src\Transactional Emails.csproj", "{462870DE-6AAC-44D7-B236-8AB8880CA9E1}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2D8E6F6E-6E65-41FF-A556-A8BED246003C}"
+ ProjectSection(SolutionItems) = preProject
+ .gitattributes = .gitattributes
+ .gitignore = .gitignore
+ .onedev-buildspec.yml = .onedev-buildspec.yml
+ GitVersion.yml = GitVersion.yml
+ LICENSE.txt = LICENSE.txt
+ Module.Taskfile.yaml = Module.Taskfile.yaml
+ README.md = README.md
+ Taskfile.yaml = Taskfile.yaml
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {A13E6674-10A6-44FC-AEA2-A56A1ABBB3BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A13E6674-10A6-44FC-AEA2-A56A1ABBB3BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A13E6674-10A6-44FC-AEA2-A56A1ABBB3BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A13E6674-10A6-44FC-AEA2-A56A1ABBB3BF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {260663D6-4BFA-40B3-9701-9F06DC1122D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {260663D6-4BFA-40B3-9701-9F06DC1122D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {260663D6-4BFA-40B3-9701-9F06DC1122D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {260663D6-4BFA-40B3-9701-9F06DC1122D9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {462870DE-6AAC-44D7-B236-8AB8880CA9E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {462870DE-6AAC-44D7-B236-8AB8880CA9E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {462870DE-6AAC-44D7-B236-8AB8880CA9E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {462870DE-6AAC-44D7-B236-8AB8880CA9E1}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {139ECCF9-D50B-4AC3-88FD-664BCB3DBB86}
+ EndGlobalSection
+EndGlobal
diff --git a/lib/Emails.Transactional.Client/src/Emails.Transactional.Client.xml b/lib/Emails.Transactional.Client/src/Emails.Transactional.Client.xml
deleted file mode 100644
index a69734e..0000000
--- a/lib/Emails.Transactional.Client/src/Emails.Transactional.Client.xml
+++ /dev/null
@@ -1,311 +0,0 @@
-<?xml version="1.0"?>
-<!--
-Copyright (c) 2022 Vaughn Nugent
--->
-<doc>
- <assembly>
- <name>Emails.Transactional.Client</name>
- </assembly>
- <members>
- <member name="T:Emails.Transactional.Client.ClientExtensions">
- <summary>
- Contains extension methods to send emails on remote transational email servers
- </summary>
- </member>
- <member name="M:Emails.Transactional.Client.ClientExtensions.SendEmailAsync(RestSharp.RestClient,Emails.Transactional.Client.EmailTransactionRequest,System.Threading.CancellationToken)">
- <summary>
- Asynchronously begins an email transaction against the mail server with the specified
- transaction request.
- </summary>
- <param name="client"></param>
- <param name="transaction">The <see cref="T:Emails.Transactional.Client.EmailTransactionRequest"/> to submit</param>
- <param name="token">A cancelaion token to cancel the operation</param>
- <returns>A task that represents the async send operation</returns>
- <exception cref="T:Emails.Transactional.Client.Exceptions.ValidationFailedException"></exception>
- <exception cref="T:Emails.Transactional.Client.Exceptions.InvalidAuthorizationException"></exception>
- <exception cref="T:Emails.Transactional.Client.Exceptions.InvalidTransactionRequestException"></exception>
- <exception cref="T:Emails.Transactional.Client.Exceptions.InvalidTransactionResponseException"></exception>
- </member>
- <member name="T:Emails.Transactional.Client.EmailTransactionRequest">
- <summary>
- A transactional email request to send an email
- template.
- </summary>
- </member>
- <member name="P:Emails.Transactional.Client.EmailTransactionRequest.Endpoint">
- <summary>
- The transactional send endpoint address
- </summary>
- </member>
- <member name="P:Emails.Transactional.Client.EmailTransactionRequest.ToAddresses">
- <summary>
- A dictionary of email addresses/names of
- users to send this email to
- </summary>
- </member>
- <member name="P:Emails.Transactional.Client.EmailTransactionRequest.CcAddresses">
- <summary>
- A dictionary of email addresses/names of
- users to carbon copy this email to
- </summary>
- </member>
- <member name="P:Emails.Transactional.Client.EmailTransactionRequest.BccAddresses">
- <summary>
- A dictionary of email addresses/names of
- users to blind carbon copy this email to
- </summary>
- </member>
- <member name="P:Emails.Transactional.Client.EmailTransactionRequest.Variables">
- <summary>
- A dictionary of variables to substitute into the liquid
- email template
- </summary>
- </member>
- <member name="P:Emails.Transactional.Client.EmailTransactionRequest.Subject">
- <summary>
- The subject of the email to send
- </summary>
- </member>
- <member name="P:Emails.Transactional.Client.EmailTransactionRequest.TemplateId">
- <summary>
- The unique id of the email template to send
- </summary>
- </member>
- <member name="P:Emails.Transactional.Client.EmailTransactionRequest.FromName">
- <summary>
- The system from email name. NOTE: This is a protected value
- </summary>
- </member>
- <member name="P:Emails.Transactional.Client.EmailTransactionRequest.FromAddress">
- <summary>
- The system from email address. NOTE: This is a protected value
- </summary>
- </member>
- <member name="M:Emails.Transactional.Client.EmailTransactionRequest.#ctor(System.String)">
- <summary>
- Creates a new email transaction with the specified email template to send
- </summary>
- <param name="templateId">The id of the template to send</param>
- <exception cref="T:System.ArgumentNullException"></exception>
- </member>
- <member name="M:Emails.Transactional.Client.EmailTransactionRequest.#ctor(System.String,System.String,System.String)">
- <summary>
- Creates a new email transaction with the specified email template
- and a single recipient
- </summary>
- <param name="templateId">The id of the template to send</param>
- <param name="toAddress">A singular recipient name</param>
- <param name="toName">A singlular recipient email address</param>
- <exception cref="T:System.ArgumentNullException"></exception>
- </member>
- <member name="M:Emails.Transactional.Client.EmailTransactionRequest.AddToAddress(System.String,System.String)">
- <summary>
- Adds a recipient to the To email address dictionary
- </summary>
- <param name="toName">The name of the user to send the email to</param>
- <param name="toAddress">The unique email address of the user to add to the recipient collection</param>
- </member>
- <member name="M:Emails.Transactional.Client.EmailTransactionRequest.AddToAddress(System.String)">
- <summary>
- Adds a recipient to the To email address dictionary
- </summary>
- <param name="toAddress">The unique email address of the user to add to the recipient collection</param>
- </member>
- <member name="M:Emails.Transactional.Client.EmailTransactionRequest.AddCcAddress(System.String,System.String)">
- <summary>
- Adds a carbon copy recipient to the current cc dictionary
- </summary>
- <param name="ccName">The name of the recipient</param>
- <param name="ccAddress">The unique email address of the bcc recipient</param>
- </member>
- <member name="M:Emails.Transactional.Client.EmailTransactionRequest.AddBccAddress(System.String,System.String)">
- <summary>
- Adds a blind carbon copy recipient to the current bcc dictionary
- </summary>
- <param name="bccName">The name of the recipient</param>
- <param name="bccAddress">The unique email address of the bcc recipient</param>
- </member>
- <member name="M:Emails.Transactional.Client.EmailTransactionRequest.AddVariable(System.String,System.String)">
- <summary>
- Adds a liquid template variable to be subsituted by the template
- renderer.
- </summary>
- <param name="varName">The unique name of the variable to add to the collection</param>
- <param name="varValue">The value if the variable that will be substituted into the template</param>
- </member>
- <member name="T:Emails.Transactional.Client.Exceptions.InvalidAuthorizationException">
- <summary>
- A excption raised when an Authorization error occured
- during a request
- </summary>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.InvalidAuthorizationException.#ctor">
- <inheritdoc/>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.InvalidAuthorizationException.#ctor(System.String)">
- <inheritdoc/>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.InvalidAuthorizationException.#ctor(System.String,System.Exception)">
- <inheritdoc/>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.InvalidAuthorizationException.#ctor(System.String,RestSharp.RestResponse{Emails.Transactional.Client.TransactionResult})">
- <inheritdoc/>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.InvalidTransactionRequestException.#ctor">
- <inheritdoc/>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.InvalidTransactionRequestException.#ctor(System.String)">
- <inheritdoc/>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.InvalidTransactionRequestException.#ctor(System.String,System.Exception)">
- <inheritdoc/>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.InvalidTransactionRequestException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
- <inheritdoc/>
- </member>
- <member name="T:Emails.Transactional.Client.Exceptions.InvalidTransactionResponseException">
- <summary>
- Raised when the results of an email transaction
- failed. Inner exceptions may be set
- </summary>
- </member>
- <member name="P:Emails.Transactional.Client.Exceptions.InvalidTransactionResponseException.ErrorMessage">
- <summary>
- An error message received from the client
- </summary>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.InvalidTransactionResponseException.#ctor">
- <inheritdoc/>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.InvalidTransactionResponseException.#ctor(System.String)">
- <inheritdoc/>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.InvalidTransactionResponseException.#ctor(System.String,System.Exception)">
- <inheritdoc/>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.InvalidTransactionResponseException.#ctor(System.String,RestSharp.RestResponse{Emails.Transactional.Client.TransactionResult})">
- <summary>
- Initializes a new <see cref="T:Emails.Transactional.Client.Exceptions.InvalidTransactionResponseException"/> with
- the response that contains the error
- </summary>
- <param name="message">The base exception message</param>
- <param name="response">The response that caused the error</param>
- </member>
- <member name="T:Emails.Transactional.Client.Exceptions.TransactionExceptionBase">
- <summary>
- A base exception for all client transaction excepions
- </summary>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.TransactionExceptionBase.#ctor">
- <inheritdoc/>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.TransactionExceptionBase.#ctor(System.String)">
- <inheritdoc/>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.TransactionExceptionBase.#ctor(System.String,System.Exception)">
- <inheritdoc/>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.TransactionExceptionBase.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
- <inheritdoc/>
- </member>
- <member name="P:Emails.Transactional.Client.Exceptions.TransactionExceptionBase.ErrorResponse">
- <summary>
- The response objec that caused the exception
- </summary>
- </member>
- <member name="P:Emails.Transactional.Client.Exceptions.TransactionExceptionBase.ResultMessage">
- <summary>
- The string represenation of the response body
- </summary>
- </member>
- <member name="T:Emails.Transactional.Client.Exceptions.ValidationFailedException">
- <summary>
- Raised when server message validation failed
- </summary>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.ValidationFailedException.#ctor">
- <inheritdoc/>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.ValidationFailedException.#ctor(System.String)">
- <inheritdoc/>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.ValidationFailedException.#ctor(System.String,System.Exception)">
- <inheritdoc/>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.ValidationFailedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
- <inheritdoc/>
- </member>
- <member name="P:Emails.Transactional.Client.Exceptions.ValidationFailedException.ValidationErrors">
- <summary>
- A collection of validaion error messages
- </summary>
- </member>
- <member name="M:Emails.Transactional.Client.Exceptions.ValidationFailedException.#ctor(Emails.Transactional.Client.TransactionResult)">
- <summary>
-
- </summary>
- <param name="result"></param>
- </member>
- <member name="T:Emails.Transactional.Client.TransactionalEmailConfig">
- <summary>
- A global configuration object for transactional email clients
- </summary>
- </member>
- <member name="P:Emails.Transactional.Client.TransactionalEmailConfig.ServiceLocation">
- <summary>
- The server transaction endpoint location
- </summary>
- </member>
- <member name="P:Emails.Transactional.Client.TransactionalEmailConfig.TemplateIdLookup">
- <summary>
- An email id template/translation table for email template-ids
- </summary>
- </member>
- <member name="M:Emails.Transactional.Client.TransactionalEmailConfig.WithUrl(System.Uri)">
- <summary>
- Adds the mail service location to the current instance
- </summary>
- <param name="serviceLocation">The address of the remote server transaction endpoint</param>
- <returns>A referrence to the current object (fluent api)</returns>
- <exception cref="T:System.ArgumentNullException"></exception>
- </member>
- <member name="M:Emails.Transactional.Client.TransactionalEmailConfig.WithTemplates(System.Collections.Generic.IReadOnlyDictionary{System.String,System.String})">
- <summary>
- Sets the template lookup table for the current instance
- </summary>
- <param name="templates">The template-id lookup table to referrence</param>
- <returns>A referrence to the current object (fluent api)</returns>
- <exception cref="T:System.ArgumentNullException"></exception>
- </member>
- <member name="M:Emails.Transactional.Client.TransactionalEmailConfig.GetTemplateRequest(System.String)">
- <summary>
- Gets a new <see cref="T:Emails.Transactional.Client.EmailTransactionRequest"/> from the specifed
- template name.
- </summary>
- <param name="templateName"></param>
- <returns></returns>
- <exception cref="T:System.Collections.Generic.KeyNotFoundException"></exception>
- <exception cref="T:System.ArgumentNullException"></exception>
- </member>
- <member name="T:Emails.Transactional.Client.TransactionResult">
- <summary>
- A JSON serializable object that contains the results of the transaction
- </summary>
- </member>
- <member name="T:Emails.Transactional.Client.ValidationErrorMessage">
- <summary>
- A json serializable server validaion error
- </summary>
- </member>
- <member name="P:Emails.Transactional.Client.ValidationErrorMessage.PropertyName">
- <summary>
- The name of the propery that was invalid
- </summary>
- </member>
- <member name="P:Emails.Transactional.Client.ValidationErrorMessage.ErrorMessage">
- <summary>
- The message that
- </summary>
- </member>
- </members>
-</doc>
diff --git a/lib/Emails.Transactional.Plugin/src/Api Endpoints/SendEndpoint.cs b/lib/Emails.Transactional.Plugin/src/Api Endpoints/SendEndpoint.cs
index 16c0d9a..1ce6acf 100644
--- a/lib/Emails.Transactional.Plugin/src/Api Endpoints/SendEndpoint.cs
+++ b/lib/Emails.Transactional.Plugin/src/Api Endpoints/SendEndpoint.cs
@@ -277,7 +277,7 @@ namespace Emails.Transactional.Endpoints
transaction.Result = ex.Message;
}
//Write transaction to db (we need to return the transaction id)
- _ = await Transactions.AddOrUpdateAsync(transaction);
+ _ = await Transactions.AddOrUpdateAsync(transaction, entity.EventCancellation);
//Store the results object
webm.SmtpStatus = transaction.Result;
webm.TransactionId = transaction.Id;