Skip to content

Conversation

@EnesEfeTokta
Copy link
Owner

This pull request introduces several new features and improvements to the FinTrack project, including the addition of enums, models, styles, and a new helper class. These changes aim to enhance functionality for managing currencies, debts, reports, and chat messages, as well as improve the user interface. Below are the most important changes grouped by theme:

Enum Additions:

  • Added CurrencyConversionType enum to represent currency changes as Increase or Decrease. (FinTrack/Enums/CurrencyConversionType.cs)
  • Added DebtStatus enum to track various states of a debt, such as PendingProposal, Active, and Completed. (FinTrack/Enums/DebtStatus.cs)
  • Added ExportFormat enum for supported export formats, including PDF, Word, and Excel. (FinTrack/Enums/ExportFormat.cs)
  • Added MessageAuthor enum to distinguish between Bot and User message authors. (FinTrack/Enums/MessageAuthor.cs)
  • Added ReportType enum to define report categories like Budget, Account, and Transaction. (FinTrack/Enums/ReportType.cs)

Model Enhancements:

  • Introduced CurrencyModel with observable properties to manage currency details, including a foreground brush for visualizing currency changes. (FinTrack/Models/Currency/CurrencyModel.cs)
  • Added DebtModel to handle debt-related data, including status-dependent properties like StatusBrush, StatusText, and IsActionRequired. (FinTrack/Models/Debt/DebtModel.cs)
  • Created ChatMessageModel to represent chat messages with properties for text, author, timestamp, and quick actions. (FinTrack/Models/FinBot/ChatMessageModel.cs)
  • Added SelectableOptionReport model to manage selectable options in reports. (FinTrack/Models/Report/SelectableOptionReport.cs)

UI and Style Updates:

  • Added new styles for chat message bubbles (UserMessageBorderStyle, BotMessageBorderStyle) and quick action buttons (QuickActionButtonStyle, ChatQuickActionButtonStyle). (FinTrack/Styles/ModernStyles.xaml)
  • Introduced BotMessageBackgroundBrush and UserMessageBackgroundBrush for chat message background colors. (FinTrack/Styles/ModernStyles.xaml)
  • Updated button width in an existing style and added a new style for report format toggle buttons. (FinTrack/Styles/ModernStyles.xaml) [1] [2]

ViewModel Improvements:

  • Enhanced CurrenciesViewModel to include filtering and sample data loading for currencies, leveraging the new CurrencyModel. (FinTrack/ViewModels/CurrenciesViewModel.cs)

Utility Additions:

  • Implemented NullToVisibilityConverter helper class to convert null values to Visibility.Collapsed or Visibility.Visible. (FinTrack/Helpers/NullToVisibilityConverter.cs)

Added CurrencyModel, CurrencyConversionType enum, and NullToVisibilityConverter for MVVM support. Refactored CurrenciesViewModel to manage and filter a dynamic list of currencies, replacing static XAML samples. Updated CurrenciesView.xaml to bind to the ViewModel, display currency details, and show/hide the detail panel based on selection.
…iews

Replaced Turkish UI text with English equivalents across AccountView, BudgetView, CurrenciesView, DashboardView, and TransactionsView for improved accessibility and consistency. Also added TextWrapping to a header in ApplicationRecognizeSlideView.
Introduces DebtStatus enum and DebtModel for representing debts, including status, participants, and UI properties. Implements DebtViewModel with commands for sending, confirming, rejecting offers, and uploading videos, along with sample data and observable collections for UI binding. Updates DebtView.xaml to bind to the new ViewModel, supporting dynamic debt proposal creation, pending offers, and a list of all debts with status-aware actions and visuals.
Introduced enums for ExportFormat and ReportType, and a SelectableOptionReport model for selectable lists. Updated ReportsViewModel to support dynamic report types, accounts, categories, sorting, and export formats, with sample data and a report summary. Enhanced ReportsView.xaml to bind to new view model properties, support selection of report type, filters, and export format, and improved styles for format selection. Added a new style for report format toggle buttons.
Introduces a new chat interface for FinBot, including message models, author enum, and view model logic for handling user and bot messages. Adds styles for chat bubbles and quick action buttons, and updates the FinBotView to bind to the new messaging system with support for quick actions and message input. Refactors and cleans up related XAML and code-behind.
Reordered using directives in DebtModel.cs and FinBotViewModel.cs for consistency. Fixed indentation in FinBotView.xaml.cs. No functional changes were made.
@EnesEfeTokta EnesEfeTokta requested a review from Copilot July 6, 2025 17:54
@EnesEfeTokta EnesEfeTokta self-assigned this Jul 6, 2025
@EnesEfeTokta EnesEfeTokta added the enhancement New feature or request label Jul 6, 2025
Copy link

Copilot AI left a 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 PR adds new enums, models, view models, styles, and XAML updates to support currency management, debt workflows, report generation, and an in-app chat bot, while standardizing UI text to English.

  • Introduced enums for currency conversion, debt status, export format, message author, and report type
  • Added observable models (CurrencyModel, DebtModel, ChatMessageModel, SelectableOptionReport) and corresponding view models with commands and sample data
  • Updated XAML views: translated labels to English, hooked up converters/commands, and refined layouts
  • Added NullToVisibilityConverter helper and new brushes/styles for chat bubbles and report format toggles

Reviewed Changes

Copilot reviewed 26 out of 26 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
FinTrack/Enums/*.cs Added enums for conversion types, statuses, formats
FinTrack/Models/* Introduced new MVVM models with computed properties
FinTrack/ViewModels/*.cs Implemented commands, sample data, logging for VMs
FinTrack/Helpers/NullToVisibilityConverter.cs New converter for null-to-Visibility binding
FinTrack/Styles/ModernStyles.xaml Defined chat brushes, report toggle styles, adjusted widths
FinTrack/Views/*.xaml Translated Turkish labels to English, wired up bindings
FinTrack/Views/*.xaml.cs Removed unused auto-generated XML doc comments
Comments suppressed due to low confidence (2)

FinTrack/Models/Report/SelectableOptionReport.cs:13

  • [nitpick] Avoid leading underscores in constructor parameter names; rename _name to name and _isSelected to isSelected for clarity and consistency.
        public SelectableOptionReport(string _name, bool _isSelected = false)

FinTrack/Views/TransactionsView.xaml:128

  • The view references EnumToBooleanConverter and enums namespace without declaring them. Add appropriate xmlns:helpers and xmlns:enums declarations and an <helpers:EnumToBooleanConverter x:Key="EnumToBooleanConverter"/> in <UserControl.Resources>.
                                    IsChecked="{Binding EditableTransaction.Type, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static enums:TransactionType.Income}}"/>


MessageInput = string.Empty;

_logger.LogInformation("Kullanıcı mesaj yazdı. {MessageText}", userMessage.Text);
Copy link

Copilot AI Jul 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Log message is in Turkish while the UI is in English. For consistency, use English or extract to a resource for localization.

Suggested change
_logger.LogInformation("Kullanıcı mesaj yazdı. {MessageText}", userMessage.Text);
_logger.LogInformation("User sent a message: {MessageText}", userMessage.Text);

Copilot uses AI. Check for mistakes.

private void LoadSampleData()
{
allCurrencies = new ObservableCollection<CurrencyModel>
Copy link

Copilot AI Jul 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Sample data for EUR and GBP are duplicated multiple times. Consider deduplicating or abstracting repeated entries to improve maintainability.

Copilot uses AI. Check for mistakes.
Replaces assignment to private fields with assignment to public properties for SelectedReportType, SelectedSortingCriterion, and SelectedExportFormat in the ReportsViewModel constructor.
@EnesEfeTokta EnesEfeTokta merged commit cd0f730 into main Jul 6, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants