HKMA.CRMIntegration.API.DLL | Error migrating note to DMS: Value cannot be null.
Parameter name: s |
that’s the error I keep getting and I don’t know why. This is my code below
I already tried different methods but still not migrating to the DMSBaseUrl=https://skdmsitea01.intra.hkma.gov.hk/otcsapi/cs.exe/api/v1
EntityCollection accNoteCollection = service.RetrieveMultiple(accNoteQuery);
string destinationFolderPath = ConfigurationManager.AppSettings["DMSBaseUrl"];
foreach (Entity note in accNoteCollection.Entities)
{
DMSService dmsService = new DMSService();
try
{
string fileName = note.GetAttributeValue<string>("filename");
if (fileName == null)
{
Console.WriteLine("Filename is null. Skipping this note...");
continue;
}
string documentBody = note.GetAttributeValue<string>("documentbody");
byte[] fileBytes = Convert.FromBase64String(documentBody);
string accountName = account.GetAttributeValue<string>("name");
string accountId = account.Id.ToString();
// Create folder path using account name and object ID
string destinationFolder = Path.Combine(destinationFolderPath, $"{accountName}_{accountId}");
// Create the folder if it doesn't exist
Directory.CreateDirectory(destinationFolder);
// Specify the destination file path
string destinationFilePath = Path.Combine(destinationFolder, fileName);
// Check if the file already exists in the destination folder
if (File.Exists(destinationFilePath))
{
// If file already exists
Console.WriteLine($"File '{fileName}' already exists in the folder '{accountName}'. Skipping...");
continue;
}
// If file doesn't exist, save to destination folder
File.WriteAllBytes(destinationFilePath, fileBytes);
Console.WriteLine($"Downloading '{fileName}' for account '{accountName}' with ID '{accountId}'");
NodeModel nodeModel = new NodeModel()
{
entityId = account.Id,
entityName = account.LogicalName,
item_id = account.GetAttributeValue<Guid>("accountid").ToString(),
item_name = fileName,
meta_header = account.GetAttributeValue<string>("accountid"),
meta_id = account.GetAttributeValue<string>("accountid"),
meta_name = account.GetAttributeValue<string>("name")
};
ResponseModel response = await dmsService.createFolderAsync(nodeModel);
if (response.ResponseCode == 200)
{
Console.WriteLine($"Note '{fileName}' migrated successfully to DMS. Note ID: {note.Id}");
logger.Info($"Note '{fileName}' migrated successfully to DMS. Note ID: {note.Id}");
}
else
{
Console.WriteLine($"Failed to migrate note '{fileName}' to DMS. Error: {response.ResponseMessage}");
logger.Error($"Failed to migrate note '{fileName}' to DMS. Error: {response.ResponseMessage}");
}
}
catch (Exception ex)
{
logger.Error($"Error migrating note to DMS: {ex.Message}");
}
}
1