private ClearProductsData DeleteSome(long storeId, int howMany) { var items = CatalogServices.Products.FindAllPagedWithCache(1, howMany); var totalCount = CatalogServices.Products.FindAllCount(storeId); if (items != null) { foreach (var p in items) { CatalogServices.DestroyProduct(p.Bvin, p.StoreId); } } var left = totalCount - howMany; if (left < 0) { left = 0; } var cleared = howMany; if (totalCount < howMany) { cleared = totalCount; } var result = new ClearProductsData(); result.ProductsCleared = cleared; result.ProductsRemaining = left; return(result); }
public ClearProductsData ClearProducts(int howMany) { var result = new ClearProductsData(); var current = DateTime.UtcNow; var availableUntil = CurrentRequestContext.CurrentStore.Settings.AllowApiToClearUntil; var compareResult = DateTime.Compare(current, availableUntil); if (compareResult >= 0) { result.ProductsCleared = 0; result.ProductsRemaining = -1; return(result); } return(DeleteSome(CurrentRequestContext.CurrentStore.Id, howMany)); }