/// <summary>
        /// Remove the representation.
        /// </summary>
        /// <exception cref="System.ArgumentNullException">Thrown when the id is null or empty</exception>
        /// <param name="id">Representation's id</param>
        /// <returns>StatusCode with the content.</returns>
        public async Task <ApiActionResult> Execute(
            string id)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                throw new ArgumentNullException(nameof(id));
            }

            // 1. Get the representation
            var representation = await _representationStore.GetRepresentation(id);

            // 2. If the representation doesn't exist then 404 is returned
            if (representation == null)
            {
                return(_apiResponseFactory.CreateError(
                           HttpStatusCode.NotFound,
                           string.Format(ErrorMessages.TheResourceDoesntExist, id)));
            }

            // 3. Remove the representation
            if (!await _representationStore.RemoveRepresentation(representation))
            {
                return(_apiResponseFactory.CreateError(HttpStatusCode.InternalServerError,
                                                       ErrorMessages.TheRepresentationCannotBeRemoved));
            }

            // 4. Returns the result.
            return(_apiResponseFactory.CreateEmptyResult(HttpStatusCode.NoContent, representation.Version, representation.Id));
        }