Support selecting update procedure for catalog updates
Added CatalogUpdateProcedure enum to domain. CatalogWriteDto now includes UpdateProcedure property in both application and BlazorWasm layers. Catalogs.razor form allows users to choose between PRTBMY_CATALOG_UPDATE and PRTBMY_CATALOG_SAVE when editing. Repository, service, and handler layers updated to pass and use the selected procedure. Default remains Update. Updated comments and TODOs for clarity and future refactoring.
This commit is contained in:
@@ -11,6 +11,7 @@ using System.Text;
|
||||
using System.Threading.Channels;
|
||||
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
|
||||
using static System.Runtime.InteropServices.JavaScript.JSType;
|
||||
using DbFirst.Domain;
|
||||
|
||||
namespace DbFirst.Infrastructure.Repositories;
|
||||
|
||||
@@ -78,7 +79,7 @@ public class CatalogRepository : ICatalogRepository
|
||||
return created;
|
||||
}
|
||||
|
||||
public async Task<VwmyCatalog?> UpdateAsync(int id, VwmyCatalog catalog, CancellationToken cancellationToken = default)
|
||||
public async Task<VwmyCatalog?> UpdateAsync(int id, VwmyCatalog catalog, CatalogUpdateProcedure procedure, CancellationToken cancellationToken = default)
|
||||
{
|
||||
catalog.Guid = id;
|
||||
|
||||
@@ -91,8 +92,12 @@ public class CatalogRepository : ICatalogRepository
|
||||
var catStringParam = new SqlParameter("@CAT_STRING", catalog.CatString);
|
||||
var changedWhoParam = new SqlParameter("@CHANGED_WHO", (object?)catalog.ChangedWho ?? DBNull.Value);
|
||||
|
||||
var procName = procedure == CatalogUpdateProcedure.Save
|
||||
? "PRTBMY_CATALOG_SAVE"
|
||||
: "PRTBMY_CATALOG_UPDATE";
|
||||
|
||||
await _db.Database.ExecuteSqlRawAsync(
|
||||
"EXEC dbo.PRTBMY_CATALOG_UPDATE @CAT_TITLE, @CAT_STRING, @CHANGED_WHO, @GUID OUTPUT",
|
||||
$"EXEC dbo.{procName} @CAT_TITLE, @CAT_STRING, @CHANGED_WHO, @GUID OUTPUT",
|
||||
parameters: new[] { catTitleParam, catStringParam, changedWhoParam, guidParam },
|
||||
cancellationToken: cancellationToken);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user