public IOperationResult Run(IOperationProvider provider) { if (provider.Action == OperationProvider.NotImplemented) { return(_resultFactory.CreateNotImplementedOperationResult(provider)); } try { provider.Action(); return(_resultFactory.CreatePassedOperationResult(provider)); } catch (Exception exception) { return(_resultFactory.CreateFailedOperationResult(provider, exception)); } }