public bool Evaluate(UserConnection userConnection, AdElement element, Entity relatedEntity, Entity handler) { _logger.Info("Получаем из элемента AD поток байтов из атрибута, указанном в записи обработчика в БД " + handler.GetTypedColumnValue <string>("NavAdAttributeName")); byte[] adValue = null; // проверяем, что из AD мы получили значение нужного атрибута if (element.Attributes.ContainsKey(handler.GetTypedColumnValue <string>("NavAdAttributeName"))) { adValue = element.Attributes[handler.GetTypedColumnValue <string>("NavAdAttributeName")].BinaryItems[0]; } else { _logger.Warn("В элементе AD не найден атрибут " + handler.GetTypedColumnValue <string>("NavAdAttributeName")); } _logger.Info("Очищаем поле " + relatedEntity.Schema.Caption + "." + handler.GetTypedColumnValue <string>("NavEntityFieldName") + " для удаления старого изображения"); relatedEntity.SetColumnValue(handler.GetTypedColumnValue <string>("NavEntityFieldName") + "Id", null); _logger.Info("Сохраняем запись"); relatedEntity.Save(false); if (adValue != null) { _logger.Info("Записываем в поле " + relatedEntity.Schema.Caption + "." + handler.GetTypedColumnValue <string>("NavEntityFieldName") + " файл с изображением"); var image = new SysImage(userConnection); image.SetDefColumnValues(); image.Name = "Photo.bmp"; image.MimeType = "image/bmp"; image.SetColumnValue("Data", adValue); image.Save(false); relatedEntity.SetColumnValue(handler.GetTypedColumnValue <string>("NavEntityFieldName") + "Id", image.PrimaryColumnValue); _logger.Info("Сохраняем запись"); relatedEntity.Save(false); } return(true); }
public SysImage(SysImage source) : base(source) { }
public SysImage(Terrasoft.Configuration.SysImage source) : base(source) { this.CopyEntityLookupProperties(source); }