-
Notifications
You must be signed in to change notification settings - Fork 0
Develop #16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Develop #16
Conversation
Added HandyControl for enhanced notifications and UI theming, including new notification service implementations. Refactored report generation logic to use a centralized IReportStore, updated related ViewModels and Models for dependency injection, and improved report creation workflows. Renamed ExportFormat to DocumentFormat for clarity and updated project references and XAML resources accordingly.
…rvice Replaced HandyControl notification service with Notifications.Wpf-based AppInNotificationService and updated dependency references. Introduced IUserStore and UserStore for managing current user data. Improved logging messages for consistency and clarity, updated converters and models, and added new UI helpers and styles. Removed unused HandyControl resources and code.
…ranslations Added new properties to DebtModel for richer debt details, including emails, description, approval/payment dates, and currency. Introduced an expandable detail view for debts in DebtView.xaml, with new styles for detail labels, separators, and buttons. Updated UI text in BudgetView.xaml and TransactionsView.xaml to English for consistency. Improved DashboardView.xaml for clearer party display. Added VideoStatusConverter helper. Updated DebtStore to map new fields from DTOs.
…video text Introduces a currency selection ComboBox for new debt offers, passing the selected BaseCurrencyType through the view model and service layers. Updates the video commitment text to use the selected currency and English language, and improves error handling in the video recorder. Also enhances lender and borrower info display in the debt details view.
Introduces the ability to view and edit the 'Reached Amount' for budgets. Updates DTOs, models, and view models to include the new field, adds a dedicated DTO for updating reached amounts, and implements related UI changes in BudgetView.xaml. Also updates styles and minor UI text for consistency.
Cleaned up unused using directives across multiple ViewModel and Helper files, improving code clarity. Fixed minor formatting inconsistencies, such as spacing and import order, to maintain code style consistency.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request significantly enhances the FinTrack application by modernizing localization from Turkish to English, implementing comprehensive notification systems, improving budget tracking capabilities, and introducing better error handling and user experience features.
- English localization replaces Turkish text across all user-facing components
- Introduction of a centralized notification service replacing modal MessageBox dialogs
- Enhanced budget tracking with reached amount functionality and interactive editing
Reviewed Changes
Copilot reviewed 64 out of 65 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| Views/*.xaml | Complete English localization of all UI labels, buttons, and user messages |
| ViewModels/*.cs | Integration of IAppInNotificationService and English messaging throughout |
| Services/AppInNotifications/* | New notification service implementation using Notifications.Wpf |
| Services/Users/* | New user store for centralized user data management |
| Services/Reports/* | Report generation abstracted into dedicated store service |
| Styles/ModernStyles.xaml | Enhanced UI styles including date picker improvements and new button styles |
| Models and DTOs | Budget tracking enhancements with ReachedAmount property support |
| </Grid.ColumnDefinitions> | ||
| <StackPanel Grid.Row="0" Grid.Column="0" Margin="0,0,10,10"> | ||
| <TextBlock Text="AÇIKLAMAYA GÖRE ARA" Style="{StaticResource LabelTextStyle}"/> | ||
| <TextBlock Text="SEARCH BY DESCRIPTION" Style="{StaticResource LabelTextStyle}"/> |
Copilot
AI
Aug 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The text 'SEARCH BY DESCRIPTION' should be 'SEARCH BY DESCRIPTION' for consistency with other labels, but consider using 'Search by Description' for better readability.
| } | ||
| "List All My Accounts" => "List all my accounts. Don't give too long explanations.", | ||
| "List All My Budgets" => "List all my budgets. Don't give too long explanations.", | ||
| "List All My Transactions" => "List all my transacitons. Don't give too long explanations.", |
Copilot
AI
Aug 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is a spelling error: 'transacitons' should be 'transactions'.
| "List All My Transactions" => "List all my transacitons. Don't give too long explanations.", | |
| "List All My Transactions" => "List all my transactions. Don't give too long explanations.", |
| "List All My Accounts", | ||
| "List All My Budgets", | ||
| "List All My Transacitons", | ||
| "List All My Transactions", |
Copilot
AI
Aug 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line correctly spells 'Transactions', but it should match the misspelling fix in the switch statement below.
| "List All My Transactions", | |
| "List All My Transcations", |
|
|
||
| public async Task LoadCurrentUserAsync() | ||
| { | ||
| _logger.LogInformation("Mevcut kullanıcı bilgileri yükleniyor..."); |
Copilot
AI
Aug 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Log message is still in Turkish ('Mevcut kullanıcı bilgileri yükleniyor...') but should be in English for consistency with the rest of the codebase.
| _logger.LogInformation("Mevcut kullanıcı bilgileri yükleniyor..."); | |
| _logger.LogInformation("Loading current user information..."); |
| if (userDto != null) | ||
| { | ||
| CurrentUser = user; | ||
| _logger.LogInformation("Kullanıcı bilgileri başarıyla yüklendi: {UserName}", userDto.UserName); |
Copilot
AI
Aug 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Log message is in Turkish ('Kullanıcı bilgileri başarıyla yüklendi') but should be in English for consistency.
| _logger.LogInformation("Kullanıcı bilgileri başarıyla yüklendi: {UserName}", userDto.UserName); | |
| _logger.LogInformation("User information loaded successfully: {UserName}", userDto.UserName); |
| { | ||
| if (CurrentUser != null) | ||
| { | ||
| _logger.LogInformation("Mevcut kullanıcı bilgileri temizleniyor."); |
Copilot
AI
Aug 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Log message is in Turkish but should be in English for consistency with the rest of the codebase.
| _logger.LogInformation("Mevcut kullanıcı bilgileri temizleniyor."); | |
| _logger.LogInformation("Clearing current user information."); |
| { | ||
| _logger.LogError(ex, "Kategoriler yüklenirken hata oluştu."); | ||
| MessageBox.Show("Kategoriler yüklenemedi. Lütfen internet bağlantınızı kontrol edin.", "Hata", MessageBoxButton.OK, MessageBoxImage.Error); | ||
| _logger.LogError(ex, "Kategoriler yüklenirken bir hata oluştu."); |
Copilot
AI
Aug 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Log message is in Turkish but should be in English for consistency with the rest of the codebase.
| _logger.LogError(ex, "Kategoriler yüklenirken bir hata oluştu."); | |
| _logger.LogError(ex, "An error occurred while loading categories."); |
| _logger.LogError(ex, "Kategoriler yüklenirken hata oluştu."); | ||
| MessageBox.Show("Kategoriler yüklenemedi. Lütfen internet bağlantınızı kontrol edin.", "Hata", MessageBoxButton.OK, MessageBoxImage.Error); | ||
| _logger.LogError(ex, "Kategoriler yüklenirken bir hata oluştu."); | ||
| _notificationService.ShowError("Kategoriler yüklenemedi. Lütfen internet bağlantınızı kontrol edin."); |
Copilot
AI
Aug 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Notification message is in Turkish but should be in English for consistency with the rest of the codebase.
| _notificationService.ShowError("Kategoriler yüklenemedi. Lütfen internet bağlantınızı kontrol edin."); | |
| _notificationService.ShowError("Categories could not be loaded. Please check your internet connection."); |
| if (SelectedBudget == null || string.IsNullOrWhiteSpace(SelectedBudget.Name) || SelectedBudget.AllocatedAmount <= 0) | ||
| { | ||
| MessageBox.Show("Lütfen bütçe adı ve sıfırdan büyük bir miktar girin.", "Eksik Bilgi", MessageBoxButton.OK, MessageBoxImage.Warning); | ||
| _notificationService.ShowWarning("Bütçe adı ve tutarı boş veya sıfırdan küçük olamaz."); |
Copilot
AI
Aug 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Notification message is in Turkish but should be in English for consistency with the rest of the codebase.
| _notificationService.ShowWarning("Bütçe adı ve tutarı boş veya sıfırdan küçük olamaz."); | |
| _notificationService.ShowWarning("Budget name and amount cannot be empty or less than or equal to zero."); |
| if (string.IsNullOrWhiteSpace(categoryToSave)) | ||
| { | ||
| MessageBox.Show("Lütfen bir kategori seçin veya yazın.", "Eksik Bilgi", MessageBoxButton.OK, MessageBoxImage.Warning); | ||
| _notificationService.ShowWarning("Lütfen bir kategori seçin veya yazın."); |
Copilot
AI
Aug 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Notification message is in Turkish but should be in English for consistency with the rest of the codebase.
| _notificationService.ShowWarning("Lütfen bir kategori seçin veya yazın."); | |
| _notificationService.ShowWarning("Please select or enter a category."); |
This pull request introduces several enhancements and refactors across the FinTrack application, focusing on budget tracking, reporting, notification handling, and UI improvements. Notably, it adds support for tracking the reached amount in budgets, improves report generation, introduces new UI converters and behaviors, and cleans up unused services and dependencies.
Budget Tracking Enhancements:
ReachedAmountproperty toBudgetCreateDto,BudgetDto, andBudgetUpdateDtoto allow tracking how much of the budget has been reached. Also introduced a newBudgetUpdateReachedAmountDtofor updating this value. [1] [2] [3] [4]BudgetModelto useReachedAmountfor progress calculations and display, and added related properties for editing and displaying this value. [1] [2]Reporting Improvements:
ReportDashboardModelto use dependency-injectedIReportStorefor asynchronous report creation and saving, with improved user feedback and error handling. Added aTypeproperty for report type specification. [1] [2] [3]IReportStore,IUserStore,IAppInNotificationService) for dependency injection and ensured proper disposal on application exit. [1] [2] [3]UI and Converter Additions:
AutoScrollBehavior,ValueToVisibilityConverter, andVideoStatusConverter, to enhance UI interactivity and data binding. ImprovedBooleanToVisibilityConverterandEqualityToBooleanConverterfor more flexible and robust conversions. [1] [2] [3] [4] [5] [6]Project Cleanup and Dependency Management:
EmailServiceandNotificationTemplatesfrom the project and added theNotifications.WpfNuGet package for improved notification support. [1] [2]Dashboard Model Refactor:
AccountDashboardto separate income and expense percentages and amounts, providing a clearer breakdown of account data.Application Lifecycle:
App.xamlto use explicit shutdown mode, giving the app more control over its shutdown process.These changes collectively improve the application's ability to track budget progress, generate and manage reports, provide a more interactive and responsive UI, and maintain a cleaner codebase.