Skip to content

Ticarət məlumatlarını (CSV, TXT, XML) izləmək və yükləmək üçün hazırlanmış plagin əsaslı C# WPF tətbiqi. Sistem dinamik plagin yüklənməsini, paralel fayl emalını və konfiqurasiya edilə bilən qovluq monitorinqini dəstəkləyir.

Notifications You must be signed in to change notification settings

teymur75/TradeMonitor_PluginArchitecture

Repository files navigation

📊 TradeMonitor — Plugin-based Trade Data Loader

TradeMonitor, müxtəlif formatlarda (CSV, TXT, XML) olan ticarət məlumatlarını izləmək və istifadəçiyə təqdim etmək üçün hazırlanmış C# WPF tətbiqidir.
Tətbiq plagin memarlığı əsasında qurulub — yəni yeni fayl formatı əlavə etmək üçün yalnız yeni bir DLL (plugin) yaratmaq kifayətdir, əsas tətbiqi yenidən tərtib etməyə ehtiyac yoxdur.


🧩 Arxitektura icmalı

Layihə 6 əsas hissədən ibarətdir:

TradeMonitor/ ├─ Plugins/ │ ├─ CsvLoader.Plugin/ │ │ └─ CsvTradeLoader.cs │ ├─ TxtLoader.Plugin/ │ │ └─ TxtTradeLoader.cs │ └─ XmlLoader.Plugin/ │ └─ XmlTradeLoader.cs ├─ TradeMonitor.App/ # WPF UI (MVVM pattern) │ ├─ ViewModels/ │ │ ├─ MainViewModel.cs │ │ └─ RelayCommand.cs │ ├─ MainWindow.xaml │ ├─ appsettings.json # Configurable: scan interval, input directory, plugin list ├─ TradeMonitor.Contracts/ # Common interfaces & data models │ ├─ ITradeLoader.cs # Plugin interface │ └─ TradeRecord.cs # Common data model └─ TradeMonitor.Core/ # Core services ├─ Services/ │ ├─ AppSettings.cs │ ├─ DirectoryScanner.cs # Monitors directory for new files │ └─ PluginLoader.cs # Dynamically loads plugins

⚙️ Funksional tələblər

1. Dinamik fayl monitorinqi:
Tətbiq verilmiş qovluğu (appsettings.json) fayl dəyişiklikləri üçün mütəmadi yoxlayır (default: hər 5 saniyədən bir).
İstifadəçi interval və path-i dəyişdikdə yalnız tətbiqi yenidən işə salmaq kifayətdir.

2. Çoxformatlı fayl emalı (CSV, TXT, XML):
Hər fayl formatı üçün ayrıca plugin yaradılıb:

  • CsvLoader.Plugin
  • TxtLoader.Plugin
  • XmlLoader.Plugin

Yeni format əlavə etmək üçün ITradeLoader interfeysini implement edən DLL yaratmaq yetərlidir.

3. Plugin-based memarlıq:
PluginLoader servisi Plugins/ qovluğundakı DLL-ləri avtomatik aşkar edir və ITradeLoader implementasiyalarını yükləyir.
Əsas tətbiqin tərtibatına toxunmadan yeni plugin əlavə etmək mümkündür.

4. Paralel fayl emalı:
Yeni fayllar aşkar edildikdə onlar paralel şəkildə oxunur və nəticələr real-time interfeysə yansıyır.

5. Asinxron WPF UI:
MainViewModel asinxron əməliyyatları UI thread-dən ayırır, bu da tətbiqin “donmamasını” təmin edir.


🖥️ İstifadəçi interfeysi (WPF)

MainWindow.xaml: Əsas ekran, yüklənmiş faylların və nəticələrin siyahısını göstərir.

MainViewModel.cs: Fayl yükləmə və nəticə təqdimatının idarəçisi (MVVM pattern).

RelayCommand.cs: Komanda pattern-inin sadə implementasiyası.

🚀 İstifadə qaydası

appsettings.json-da DirectoryPath və IntervalSeconds dəyərlərini təyin edin.

Plugins qovluğunda uyğun DLL-lərin (*.Plugin.dll) olduğuna əmin olun.

TradeMonitor.App layihəsini işə salın (F5).

Fayl qovluğuna yeni .csv, .xml və ya .txt faylı əlavə edin.

Nəticə avtomatik olaraq GUI-də görsənəcək.

🔧 Texnoloji Stack

.NET 8 (C#)

WPF (MVVM pattern)

Dynamic Plugin Loading (Reflection / MEF-like)

Asynchronous Parallel Processing

Configuration via appsettings.json

About

Ticarət məlumatlarını (CSV, TXT, XML) izləmək və yükləmək üçün hazırlanmış plagin əsaslı C# WPF tətbiqi. Sistem dinamik plagin yüklənməsini, paralel fayl emalını və konfiqurasiya edilə bilən qovluq monitorinqini dəstəkləyir.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages