public ResourceObject Get(UniqueIdentifier id, IEnumerable <string> attributes, CultureInfo locale)
        {
            if (id == null)
            {
                throw new ArgumentNullException("id");
            }

            bool partialResponse = attributes != null;

            GetResponse r = new GetResponse();

            using (Message message = MessageComposer.CreateGetMessage(id, attributes, locale))
            {
                using (Message responseMessage = this.Invoke((c) => c.Get(message)))
                {
                    responseMessage.ThrowOnFault();

                    if (partialResponse)
                    {
                        GetResponse response = responseMessage.DeserializeMessageWithPayload <GetResponse>();
                        return(new ResourceObject(response.Results.OfType <XmlElement>(), this.client, locale));
                    }
                    else
                    {
                        XmlDictionaryReader fullObject = responseMessage.GetReaderAtBodyContents();
                        return(new ResourceObject(fullObject, this.client, locale));
                    }
                }
            }
        }
Example #2
0
        internal XmlDictionaryReader GetFullObjectForUpdate(ResourceObject resource)
        {
            if (resource == null)
            {
                throw new ArgumentNullException(nameof(resource));
            }

            using (Message message = MessageComposer.CreateGetMessage(resource.ObjectID, null, resource.Locale, resource.HasPermissionHints))
            {
                using (Message responseMessage = this.Invoke((c) => c.Get(message)))
                {
                    responseMessage.ThrowOnFault();

                    return(responseMessage.GetReaderAtBodyContents());
                }
            }
        }