diff --git a/Doppler.HtmlEditorApi/ApiModels/PromoCode.cs b/Doppler.HtmlEditorApi/ApiModels/PromoCode.cs
index 0108cb44..6c973cf4 100644
--- a/Doppler.HtmlEditorApi/ApiModels/PromoCode.cs
+++ b/Doppler.HtmlEditorApi/ApiModels/PromoCode.cs
@@ -17,7 +17,8 @@ public record PromoCode(
decimal minPrice,
int maxUses,
string categories,
- string prefix
+ string prefix,
+ string store
) : IValidatableObject
{
public IEnumerable Validate(ValidationContext validationContext) { yield break; }
diff --git a/Doppler.HtmlEditorApi/Controllers/CampaignsController.cs b/Doppler.HtmlEditorApi/Controllers/CampaignsController.cs
index be51b00f..982e55fb 100644
--- a/Doppler.HtmlEditorApi/Controllers/CampaignsController.cs
+++ b/Doppler.HtmlEditorApi/Controllers/CampaignsController.cs
@@ -207,7 +207,8 @@ public async Task, CreatedAtRoute UpdatePromoCode(string accountName, int campaig
MaxUses: promoCode.maxUses,
Categories: promoCode.categories,
CampaignId: campaignId,
- Prefix: promoCode.prefix
+ Prefix: promoCode.prefix,
+ Store: promoCode.store
);
var updateResult = await _promoCodeRepository.UpdatePromoCode(promoCodeModel);
diff --git a/Doppler.HtmlEditorApi/Domain/PromoCodeModel.cs b/Doppler.HtmlEditorApi/Domain/PromoCodeModel.cs
index 08e33436..eb67999e 100644
--- a/Doppler.HtmlEditorApi/Domain/PromoCodeModel.cs
+++ b/Doppler.HtmlEditorApi/Domain/PromoCodeModel.cs
@@ -12,5 +12,6 @@ public record PromoCodeModel(
int MaxUses,
string Categories,
int CampaignId,
- string Prefix
+ string Prefix,
+ string Store
);
diff --git a/Doppler.HtmlEditorApi/Repositories.DopplerDb/DopplerPromoCodeRepository.cs b/Doppler.HtmlEditorApi/Repositories.DopplerDb/DopplerPromoCodeRepository.cs
index b7cfef3f..e92a8d88 100644
--- a/Doppler.HtmlEditorApi/Repositories.DopplerDb/DopplerPromoCodeRepository.cs
+++ b/Doppler.HtmlEditorApi/Repositories.DopplerDb/DopplerPromoCodeRepository.cs
@@ -26,7 +26,8 @@ public async Task CreatePromoCode(PromoCodeModel promoCodeModel)
MaxUses: promoCodeModel.MaxUses,
Categories: promoCodeModel.Categories,
IdCampaign: promoCodeModel.CampaignId,
- Prefix: promoCodeModel.Prefix
+ Prefix: promoCodeModel.Prefix,
+ ThirdPartyApp: promoCodeModel.Store
);
var result = await _dbContext.ExecuteAsync(insertPromoCodeDbQuery);
@@ -48,7 +49,8 @@ public async Task UpdatePromoCode(PromoCodeModel promoCodeModel)
ExpireDays: promoCodeModel.ExpireDays,
MaxUses: promoCodeModel.MaxUses,
Categories: promoCodeModel.Categories,
- Prefix: promoCodeModel.Prefix
+ Prefix: promoCodeModel.Prefix,
+ ThirdPartyApp: promoCodeModel.Store
);
var result = await _dbContext.ExecuteAsync(updatePromoCodeDbQuery);
diff --git a/Doppler.HtmlEditorApi/Repositories.DopplerDb/Queries/InsertPromoCodeDbQuery.cs b/Doppler.HtmlEditorApi/Repositories.DopplerDb/Queries/InsertPromoCodeDbQuery.cs
index 33be297b..2d4b82e4 100644
--- a/Doppler.HtmlEditorApi/Repositories.DopplerDb/Queries/InsertPromoCodeDbQuery.cs
+++ b/Doppler.HtmlEditorApi/Repositories.DopplerDb/Queries/InsertPromoCodeDbQuery.cs
@@ -13,10 +13,14 @@ public record InsertPromoCodeDbQuery(
int MaxUses,
string? Categories,
int IdCampaign,
- string Prefix
+ string Prefix,
+ string ThirdPartyApp
) : ISingleItemDbQuery
{
public string GenerateSqlQuery() => @"
+DECLARE @IdThirdPartyApp INT;
+SELECT @IdThirdPartyApp = IdThirdPartyApp FROM ThirdPartyApp WHERE Name = @ThirdPartyApp;
+
INSERT INTO DynamicContentPromoCode (
Type,
Value,
@@ -28,7 +32,8 @@ INSERT INTO DynamicContentPromoCode (
MaxUses,
Categories,
IdCampaign,
- Prefix
+ Prefix,
+ IdThirdPartyApp
) VALUES (
@Type,
@Value,
@@ -40,7 +45,8 @@ INSERT INTO DynamicContentPromoCode (
@MaxUses,
@Categories,
@IdCampaign,
- @Prefix
+ @Prefix,
+ ISNULL(@IdThirdPartyApp, 3)
)
SELECT @@Identity AS IdDynamicContentPromoCode";
diff --git a/Doppler.HtmlEditorApi/Repositories.DopplerDb/Queries/UpdatePromoCodeDbQuery.cs b/Doppler.HtmlEditorApi/Repositories.DopplerDb/Queries/UpdatePromoCodeDbQuery.cs
index 5aa2574f..4b03443f 100644
--- a/Doppler.HtmlEditorApi/Repositories.DopplerDb/Queries/UpdatePromoCodeDbQuery.cs
+++ b/Doppler.HtmlEditorApi/Repositories.DopplerDb/Queries/UpdatePromoCodeDbQuery.cs
@@ -14,10 +14,14 @@ public record UpdatePromoCodeDbQuery(
int ExpireDays,
int MaxUses,
string? Categories,
- string Prefix
+ string Prefix,
+ string ThirdPartyApp
) : IExecutableDbQuery
{
public string GenerateSqlQuery() => @"
+DECLARE @IdThirdPartyApp INT;
+SELECT @IdThirdPartyApp = IdThirdPartyApp FROM ThirdPartyApp WHERE Name = @ThirdPartyApp;
+
UPDATE DynamicContentPromoCode
SET Type = @Type,
Value = @Value,
@@ -28,6 +32,7 @@ UPDATE DynamicContentPromoCode
ExpireDays = @ExpireDays,
MaxUses = @MaxUses,
Categories = @Categories,
- Prefix = @Prefix
+ Prefix = @Prefix,
+ IdThirdPartyApp = ISNULL(@IdThirdPartyApp, IdThirdPartyApp)
WHERE IdDynamicContentPromoCode = @Id AND IdCampaign = @IdCampaign";
}
diff --git a/cspell.json b/cspell.json
index fc670314..51bd1e5f 100644
--- a/cspell.json
+++ b/cspell.json
@@ -44,6 +44,10 @@
"FIRSTNAME",
"LASTNAME"
]
+ },
+ {
+ "filename": "**/Repositories.DopplerDb/Queries/*.cs",
+ "ignoreWords": ["ISNULL"]
}
]
}