/// <inheritdoc/>
        public async Task AddSubscription(SubscriptionAddModel subscriptionModel)
        {
            if (await _subscriptionsRepositry.SubscriptionExists(subscriptionModel.Id) ||
                await _subscriptionsRepositry.SubscriptionExists(subscriptionModel.Event, subscriptionModel.Endpoint))
            {
                throw new DuplicateException();
            }

            var subscription = _mapper.Map <Subscription>(subscriptionModel);
            await _subscriptionsRepositry.AddSubscription(subscription);

            var endpoint = await _bus.GetSendEndpoint(typeof(ActivateSubscription).GetQueueAddress());

            await endpoint.Send(new ActivateSubscription(subscriptionModel.Id));

            await _unitOfWork.Save();
        }