/// <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); }
/// <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); }