Example #1
0
        /// <summary>
        /// <see cref="IConsumer{TSingle,TMultiple,TPrimaryKey}.Delete(IEnumerable{TPrimaryKey}, string, string, RequestParameter[])">Delete</see>
        /// </summary>
        public virtual MultipleDeleteResponse Delete(
            IEnumerable <TPrimaryKey> refIds,
            string zoneId    = null,
            string contextId = null,
            params RequestParameter[] requestParameters)
        {
            if (!RegistrationService.Registered)
            {
                throw new InvalidOperationException("Consumer has not registered.");
            }

            List <deleteIdType> deleteIds = new List <deleteIdType>();

            foreach (TPrimaryKey id in refIds)
            {
                deleteIdType deleteId = new deleteIdType {
                    id = id.ToString()
                };
                deleteIds.Add(deleteId);
            }

            deleteRequestType request = new deleteRequestType {
                deletes = deleteIds.ToArray()
            };
            string url = new StringBuilder(EnvironmentUtils.ParseServiceUrl(EnvironmentTemplate))
                         .Append($"/{TypeName}s")
                         .Append(HttpUtils.MatrixParameters(zoneId, contextId))
                         .Append(GenerateQueryParameterString(requestParameters)).ToString();
            string requestBody  = SerialiserFactory.GetSerialiser <deleteRequestType>(ContentType).Serialise(request);
            string responseBody = HttpUtils.PutRequest(
                url,
                RegistrationService.AuthorisationToken,
                requestBody,
                methodOverride: "DELETE",
                contentTypeOverride: ContentType.ToDescription(),
                acceptOverride: Accept.ToDescription());

            if (log.IsDebugEnabled)
            {
                log.Debug("Response from PUT (DELETE) request ...");
            }
            if (log.IsDebugEnabled)
            {
                log.Debug(responseBody);
            }
            deleteResponseType     updateResponseType = SerialiserFactory.GetSerialiser <deleteResponseType>(Accept).Deserialise(responseBody);
            MultipleDeleteResponse updateResponse     = MapperFactory.CreateInstance <deleteResponseType, MultipleDeleteResponse>(updateResponseType);

            return(updateResponse);
        }
Example #2
0
        /// <summary>
        /// <see cref="IConsumer{TSingle,TMultiple,TPrimaryKey}.Delete(IEnumerable{TPrimaryKey}, string, string)">Delete</see>
        /// </summary>
        public virtual MultipleDeleteResponse Delete(IEnumerable <TPrimaryKey> refIds, string zoneId = null, string contextId = null)
        {
            if (!RegistrationService.Registered)
            {
                throw new InvalidOperationException("Consumer has not registered.");
            }

            List <deleteIdType> deleteIds = new List <deleteIdType>();

            foreach (TPrimaryKey id in refIds)
            {
                deleteIdType deleteId = new deleteIdType {
                    id = id.ToString()
                };
                deleteIds.Add(deleteId);
            }

            deleteRequestType request = new deleteRequestType {
                deletes = deleteIds.ToArray()
            };
            string url  = EnvironmentUtils.ParseServiceUrl(EnvironmentTemplate) + "/" + TypeName + "s" + HttpUtils.MatrixParameters(zoneId, contextId);
            string body = SerialiserFactory.GetXmlSerialiser <deleteRequestType>().Serialise(request);
            string xml  = HttpUtils.PutRequest(url, RegistrationService.AuthorisationToken, body, methodOverride: "DELETE");

            if (log.IsDebugEnabled)
            {
                log.Debug("XML from PUT (DELETE) request ...");
            }
            if (log.IsDebugEnabled)
            {
                log.Debug(xml);
            }
            deleteResponseType     updateResponseType = SerialiserFactory.GetXmlSerialiser <deleteResponseType>().Deserialise(xml);
            MultipleDeleteResponse updateResponse     = MapperFactory.CreateInstance <deleteResponseType, MultipleDeleteResponse>(updateResponseType);

            return(updateResponse);
        }