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"] } ] }