diff --git a/src/Web/Catalog.WebForms/Catalog.WebForms/Default.aspx.cs b/src/Web/Catalog.WebForms/Catalog.WebForms/Default.aspx.cs index a74ed8e82..2587b91f0 100644 --- a/src/Web/Catalog.WebForms/Catalog.WebForms/Default.aspx.cs +++ b/src/Web/Catalog.WebForms/Catalog.WebForms/Default.aspx.cs @@ -17,10 +17,8 @@ namespace eShopOnContainers.Catalog.WebForms protected _Default() { } - public _Default(ICatalogService catalog) - { + public _Default(ICatalogService catalog) => this.catalog = catalog; - } protected void Page_Load(object sender, EventArgs e) { @@ -33,15 +31,12 @@ namespace eShopOnContainers.Catalog.WebForms // int startRowIndex // out int totalRowCount // string sortByExpression - public async Task> GetCatalogDataAsync() - { - return await catalog?.GetCatalogAsync(); - } + public async Task> GetCatalogDataAsync() => + (await catalog?.GetCatalogAsync()).AsEnumerable(); - // The id parameter name should match the DataKeyNames value set on the control - public async Task DeleteCatalogItemAsync(int id) + public Task DeleteCatalogItemAsync(int id) { - //TODO: Call the service. + return catalog?.DeleteCatalogItem(id.ToString()); } } } \ No newline at end of file diff --git a/src/Web/Catalog.WebForms/Catalog.WebForms/Services/CatalogMockService.cs b/src/Web/Catalog.WebForms/Catalog.WebForms/Services/CatalogMockService.cs index 985e14939..06cecb745 100644 --- a/src/Web/Catalog.WebForms/Catalog.WebForms/Services/CatalogMockService.cs +++ b/src/Web/Catalog.WebForms/Catalog.WebForms/Services/CatalogMockService.cs @@ -71,5 +71,15 @@ namespace eShopOnContainers.Core.Services.Catalog return MockCatalog.FirstOrDefault(c => c.Id == id); } + + public async Task DeleteCatalogItem(string catalogItemId) + { + var itemToRemove = MockCatalog.FirstOrDefault(c => c.Id == catalogItemId); + await Task.Delay(500); + if (itemToRemove != null) + MockCatalog.Remove(itemToRemove); + else + throw new ArgumentException(message: "item could not be found", paramName: nameof(catalogItemId)); + } } } \ No newline at end of file diff --git a/src/Web/Catalog.WebForms/Catalog.WebForms/Services/CatalogService.cs b/src/Web/Catalog.WebForms/Catalog.WebForms/Services/CatalogService.cs index 93a74eb83..a1016f456 100644 --- a/src/Web/Catalog.WebForms/Catalog.WebForms/Services/CatalogService.cs +++ b/src/Web/Catalog.WebForms/Catalog.WebForms/Services/CatalogService.cs @@ -127,5 +127,17 @@ namespace eShopOnContainers.Core.Services.Catalog return new ObservableCollection(); } } + + public async Task DeleteCatalogItem(string catalogItemId) + { + // TODO: + UriBuilder builder = new UriBuilder("" /* GlobalSetting.Instance.CatalogEndpoint */); + + builder.Path = $"api/v1/catalog/{catalogItemId}"; + + string uri = builder.ToString(); + + await _requestProvider.DeleteAsync(uri); + } } } diff --git a/src/Web/Catalog.WebForms/Catalog.WebForms/Services/ICatalogService.cs b/src/Web/Catalog.WebForms/Catalog.WebForms/Services/ICatalogService.cs index e7e5b5c04..dc8a2d3d1 100644 --- a/src/Web/Catalog.WebForms/Catalog.WebForms/Services/ICatalogService.cs +++ b/src/Web/Catalog.WebForms/Catalog.WebForms/Services/ICatalogService.cs @@ -14,5 +14,6 @@ namespace eShopOnContainers.Core.Services.Catalog Task> GetCatalogTypeAsync(); Task> GetCatalogAsync(); Task GetCatalogItemAsync(string id); + Task DeleteCatalogItem(string catalogItemId); } } \ No newline at end of file