public void UnsubscribeDataSource(string userId, string datasourceId)
        {
            var evt = new FeedDataSourceUnsubscribedEvent(Guid.NewGuid().ToString(), Id, Version + 1, userId, datasourceId, DateTime.UtcNow);

            Handle(evt);
            DomainEvts.Add(evt);
        }
        private void Handle(FeedDataSourceUnsubscribedEvent evt)
        {
            if (UserId != evt.UserId)
            {
                throw new DomainException(Global.UserNotAuthorizedToUnSubscribe);
            }

            var datasource = DataSources.FirstOrDefault(d => d.DatasourceId == evt.DataSourceId);

            if (datasource == null)
            {
                throw new DomainException(string.Format(Global.DataSourceDoesntExist, evt.DataSourceId));
            }

            DataSources.Remove(datasource);
            UpdateDateTime = evt.DeletionDateTime;
            Version        = evt.Version;
        }