Периодическое пополнение списка данными из Infrastructure в UI
Пытаюсь научиться в WPF + CleanArchitecture, для начала разбил приложение на слои и обозначил их специфику.
При нажатии в приложении кнопки "Включить"
public MainWindowViewModel(
IWindow window,
IBackup backup)
{
EnableBackup.Subscribe(async _ =>
{
backup.Enable();
});
}
включается отслеживание в определённой папке, добавились ли туда новые файлы.
public void Enable()
{
watcher = new FileSystemWatcher(ApplicationSettings.Default.SourcePath)
{
IncludeSubdirectories = ApplicationSettings.Default.IsSearchSubdir,
EnableRaisingEvents = true
};
watcher.NotifyFilter |= NotifyFilters.LastWrite;
watcher.Created += new FileSystemEventHandler(OnCreated);
}
Если файл создался то далее по event уже вызываем OnCreated()
System.Windows.Application.Current.Dispatcher.Invoke(() =>
{
CopiedFiles.Value.Add(new CopiedFile
{
Time = DateTime.Now.ToLocalTime(),
FileName = (e.Name.Split('\\')).Last()
});
});
который получит название файла и время создания. Проблема в том, что функция проверки создания файла находится в слое Infrastructure, и обратное обращение запрещено, что бы заполнить свойство
public ReactiveProperty<IList<CopiedFile>> CopiedFiles { get; } = new();
Как можно решить эту проблему, может я куда то совсем не туда копаю?