public ChildAttachmentsProviderConfig(PhotoAttachmentModel parentAttachment) { Predicate = model => parentAttachment.ChildAttachmentDescriptors.Any(childDescriptor => childDescriptor.ChildAttachmentId == model.Id); DecoratorTransform = PhotoDecoratorTransform; }
private PhotoAttachmentViewModel(PhotoAttachmentModel photoModel, bool isReadonly) : base(photoModel, isReadonly) { if (photoModel.PreviewDataBlob?.Any() ?? false) { DispatcherHelper.InvokeOnDispatcher(() => //DispatcherHelper.BeginInvokeOnDispatcher(() => { PreviewProvider.SetPreview(photoModel); Preview.SetPreviewSource(PreviewProvider.GetPreview(photoModel.Id)); }); } }
/// <summary> /// Сохранить в кэш данные превью фотографии. /// </summary> public static void SetPreview(PhotoAttachmentModel photoModel) { lock (Locker) { if (previewSources.ContainsKey(photoModel.Id)) { return; } string previewFilePath = Path.Combine(previewFolderPath, $"preview_{photoModel.Id}"); File.WriteAllBytes(previewFilePath, photoModel.PreviewDataBlob); previewSources.Add(photoModel.Id, new BitmapImage(new Uri(previewFilePath, UriKind.Absolute)) { CacheOption = BitmapCacheOption.None, CreateOptions = BitmapCreateOptions.DelayCreation }); } }
public static PhotoAttachmentViewModel CreateEditable(PhotoAttachmentModel photoModel) { return(new PhotoAttachmentViewModel(photoModel, false)); }
public static PhotoAttachmentViewModel CreateReadonly(PhotoAttachmentModel photoModel) { return(new PhotoAttachmentViewModel(photoModel, true)); }