/// <summary>
        /// delete...
        /// </summary>
        /// <param name="theTouchpoint">the touchpoint (id)</param>
        /// <returns>an area routing detail (the touchpoint)</returns>
        public async Task Delete(string theTouchpoint)
        {
            It.IsEmpty(theTouchpoint)
            .AsGuard <ArgumentNullException>(nameof(theTouchpoint));

            var usingPath = StoragePaths.GetRoutingDetailResourcePathFor(theTouchpoint);

            (!await DocumentStore.DocumentExists <RoutingDetail>(usingPath, _partitionKey))
            .AsGuard <NoContentException>();

            await DocumentStore.DeleteDocument(usingPath, _partitionKey);
        }
        /// <summary>
        /// add...
        /// </summary>
        /// <param name="theCandidate">the candidate (touchpoint)</param>
        /// <returns>the newly stored routing details (touchpoint)</returns>
        public async Task <IRoutingDetail> Add(IncomingRoutingDetail theCandidate)
        {
            It.IsNull(theCandidate)
            .AsGuard <ArgumentNullException>(nameof(theCandidate));

            var theTouchpoint = theCandidate?.TouchpointID;

            It.IsEmpty(theTouchpoint)
            .AsGuard <ArgumentNullException>(nameof(theTouchpoint));

            var usingPath = StoragePaths.GetRoutingDetailResourcePathFor(theTouchpoint);

            (await DocumentStore.DocumentExists <RoutingDetail>(usingPath, _partitionKey))
            .AsGuard <ConflictingResourceException>();

            return(await DocumentStore.AddDocument(theCandidate, StoragePaths.RoutingDetailCollection));
        }
        /// <summary>
        /// get...
        /// </summary>
        /// <param name="theTouchpoint">the touchpoint (id)</param>
        /// <returns>an area routing detail (the touchpoint)</returns>
        public async Task <IRoutingDetail> Get(string theTouchpoint)
        {
            var usingPath = StoragePaths.GetRoutingDetailResourcePathFor(theTouchpoint);

            return(await DocumentStore.GetDocument <RoutingDetail>(usingPath, _partitionKey));
        }