public override bool TopicOperation(TopicOperation operation, OperationContext operationContext) { bool result = false; try { if (operation != null) { switch (operation.TopicOperationType) { case TopicOperationType.Create: result = CreateTopic(operation.Topic); break; case TopicOperationType.Get: result = GetTopic(operation.Topic); break; case TopicOperationType.Remove: result = DeleteTopic(operation.Topic); break; case TopicOperationType.Subscribe: result = _topicManager.CreateSubscription(operation.Topic, ((SubscriptionOperation)operation).SubscriptionInfo); break; case TopicOperationType.UnSubscribe: result = _topicManager.RemoveSubscription(operation.Topic, ((SubscriptionOperation)operation).SubscriptionInfo, ((SubscriptionOperation)operation).IsDispose); break; case TopicOperationType.RefreshSubscription: result = RefreshSubscription(operation.Topic, ((SubscriptionOperation)operation).SubscriptionInfo); break; case TopicOperationType.RemoveInavtiveSubscripber: result = _topicManager.RemoveInactiveSubscriber(operation.Topic, ((SubscriptionOperation)operation).SubscriptionInfo); break; } } if (result && _context.PerfStatsColl != null) { _context.PerfStatsColl.SetCacheSize(Size); } return(result); } catch (Exception ex) { throw; } result = false; }