Полагаю, не стоит обновлять базу данных CRM напрямую, так как в CRM SDK есть много всего доступного.
Шаги для выполнения:
- Получите путь к файлу из XML
- , убедитесь, что тип файла jpg , затем прочитайте файл как Base64 строка
- Создать объект типа
Annotation
, где objectid
= GUID записи
Посмотрите на приведенный ниже код, он должен работать для вас
Guid AttachToIncident(string filePath, Guid recordGuid){
Func<string,string> imageToBase64 = (fpath) => {
using (Image image = Image.FromFile(fpath))
{
using (MemoryStream memStrm = new MemoryStream())
{
image.Save(memStrm, image.RawFormat);
byte[] imageBytes = memStrm.ToArray();
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
};
string fileName = Path.GetFileName(filePath);
Guid attachmentId = Guid.Empty;
Entity newAnnotation = new Entity("annotation");
newAnnotation["subject"] = "external attachment";
newAnnotation["filename"] = filename;
newAnnotation["mimetype"] = @"image/jpeg";
newAnnotation["documentbody"] = imageToBase64(filePath);
newAnnotation["objectid"] = new EntityReference("incident", recordGuid);
//you must be knowing what this service is ;)
attachmentId = orgService.Create(newAnnotation);
return attachmentId;
}