IVGCVSW-5203 Fix Dynamic Sample Backend build

Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: Ie2a8b0e4f439500a1978f66dd332281220c75a82
diff --git a/src/dynamic/sample/SampleDynamicBackend.cpp b/src/dynamic/sample/SampleDynamicBackend.cpp
index 2ef8faa..7a3475b 100644
--- a/src/dynamic/sample/SampleDynamicBackend.cpp
+++ b/src/dynamic/sample/SampleDynamicBackend.cpp
@@ -44,9 +44,15 @@
     }
 
     IBackendInternal::IWorkloadFactoryPtr CreateWorkloadFactory(
-        class TensorHandleFactoryRegistry& /*tensorHandleFactoryRegistry*/) const override
+        class TensorHandleFactoryRegistry& tensorHandleFactoryRegistry) const override
     {
-        return IWorkloadFactoryPtr{};
+        auto memoryManager = std::make_shared<SampleMemoryManager>();
+
+        tensorHandleFactoryRegistry.RegisterMemoryManager(memoryManager);
+        tensorHandleFactoryRegistry.RegisterFactory(std::make_unique<SampleDynamicTensorHandleFactory>(memoryManager));
+
+        return std::make_unique<SampleDynamicWorkloadFactory>(
+            PolymorphicPointerDowncast<SampleMemoryManager>(memoryManager));
     }
 
     IBackendInternal::IBackendProfilingContextPtr CreateBackendProfilingContext(
@@ -80,7 +86,7 @@
         return optimizationViews;
     }
 
-    void RegisterTensorHandleFactories(class TensorHandleFactoryRegistry& registry) const override
+    void RegisterTensorHandleFactories(class TensorHandleFactoryRegistry& registry) override
     {
         auto memoryManager = std::make_shared<SampleMemoryManager>();