Let me clarify to help you with this.
SDL Tridion Docs comes in different WCF endpoints for different services.
Here is the list of WCF services available and Web Services classes and methods refer to the SDL documentation it provided web service each methods request and response XMLs detail, to start with you are already found the document for "using .SVC Web Service in C#", top of that you can add the additional services endpoints you need for your requirements. OOTB SDL Tridion Docs installation media only comes with 20130522.SdlTrisoft-WcfWebServices-JavaClient-Lab.zip and 20200501.InfoShare-14.0.4101.2.PluginSamples.zip not for the SVC C# web service sample, that's covered in the document.
For your requirement, I think you need to use Application.svc (authentication), Folder.svc (For getting the image folder items) and DocumentObj.svc (For accessing Illustrations image details)
Here are the high-level steps how you do to get that images to be download from that folder.
- Connect Application.svc service to authenticate
- Connect Folder.svc service Folder 2.5 GetContents API get the Illustration (media) object ishlngref (which is unique combination of version and language) Ids list.
- Use that step2 info to connect DocumentObj.svc service DocumentObj 2.5 GetMetaDataByIshLngRef (for getting the Illustration metadata properties) and GetDataObjectByIshLngRef APIs to download the Illustration object if required.
For your use case, you don't need a logical Id(I mean GUID), also to note GUID logical it's not unique by version and language. you have to use ishlngref value. some of the APIs you could use logical id(GUID) then you need to pass version and language info to get your object metadata values, if you really looking for GUID value then the response of the metadata object XML you can process to get the XPath value ishobjects/ishobject/@ishref
Updated:
To find the FolderRef Id, go to the folder properties, and then in the popup URL, you can find the folderId in the query string parameter, in your case, you can configure this FolderId to pass to GetContents Folder API.
URL will look like something like:
https://locahost/ISHCM/FolderDlg.asp?Operation=Modify&FolderId=8159&Type=VDOCTYPEILLUSTRATION&UsrGrp=&Name=Images&MyFavorites=N&ParentId=3222
**
Example:
string xmlDocumentObjectList;
string lngRef = "8159"; #This is the value you need to get it from Folder GetContents API
string documentTitle;
string documentStatus;
string documentLogicalId; //This is the GUID value you are looking for
string xmlRequestedMetadata = "<ishfields><ishfield name='FTITLE' level='logical'/><ishfield name='FSTATUS' level='lng'/></ishfields>";
//TODO to use your referened webservice proxy to initialize
xmlDocumentObjectList = documentObjProxy.GetMetaDataByIshLngRef(lngRef,xmlRequestedMetadata);
if (xmlDocumentObjectList != null)
{
XDocument xObjectDoc = XDocument.Parse(xmlDocumentObjectList);
if (xObjectDoc.XPathSelectElement("ishobjects/ishobject") != null &&
xObjectDoc.XPathSelectElement(
"ishobjects/ishobject/ishfields/ishfield[@name='FTITLE']") != null)
{
documentLogicalId =
xObjectDoc.XPathSelectElement("ishobjects/ishobject")
?.Attribute("ishref") != null
? xObjectDoc.XPathSelectElement("ishobjects/ishobject")
?.Attribute("ishref")?.Value
: "";
documentTitle = xObjectDoc
.XPathSelectElement(
"ishobjects/ishobject/ishfields/ishfield[@name='FTITLE']")?.Value;
documentStatus = xObjectDoc
.XPathSelectElement(
"ishobjects/ishobject/ishfields/ishfield[@name='FSTATUS']")?.Value;
}
}
I hope it helps.