private async Task <FileInfo> GetContainerDataFile(int recordId, string fieldName, int repetitionNumber)
        {
            int    targetRecordId = recordId; // make sure this record has some data in the container field targeted!
            string containerField = fieldName;

            if (repetitionNumber > 0)
            {
                // append the repetition number, repeating fields look like this in the returned data
                // container_field_repeat(3)": "https://..."
                containerField = $"{containerField}({repetitionNumber})";
            }

            // what layout has a container field on it?
            fms.SetLayout("FRUIT_utility");
            fms.SetDownloadFolder(@"C:\Users\Public");
            Login();

            // find the record
            var findMyRecord = fms.FindRequest(targetRecordId);
            // execute the find
            var myData = await findMyRecord.Execute();

            // work with the result returned to get the URL of the container data
            FMData      result   = myData.data;
            FMRecordSet foundset = result.foundSet;
            // there is only one record
            FMRecord row = foundset.records.First();

            // get the URL from the container field
            string url = row.fieldsAndData[containerField];

            // get the container data to a file on disk
            FileInfo containerDataFile =
                await fms.DownloadFileFromContainerField(url, "test_" + RandomString(5, true) + ".jpg");

            Logout();
            return(containerDataFile);
        }