Skip to content

Conversation

@EnesEfeTokta
Copy link
Owner

This pull request introduces several enhancements to the FinTrack application, including new enums, models, converters, and updates to the feedback and notification systems. The key changes are grouped into three themes: new enums and utilities, feedback system improvements, and notification system updates.

New Enums and Utilities:

  • Added FeedbackTypes and NotificationType enums to categorize feedback and notifications respectively. FeedbackTypes includes descriptions for better user understanding. (FinTrack/Enums/FeedbackTypes.cs - [1] FinTrack/Enums/NotificationType.cs - [2]
  • Introduced EnumToDescriptionConverter to convert enum values to their Description attributes for display purposes in the UI. (FinTrack/Helpers/EnumToDescriptionConverter.cs - FinTrack/Helpers/EnumToDescriptionConverter.csR1-R44)

Feedback System Improvements:

  • Enhanced FeedbackViewModel to manage feedback input, including subject, description, feedback type, and file attachment. Added commands for sending feedback, browsing files, and opening links. (FinTrack/ViewModels/FeedbackViewModel.cs - FinTrack/ViewModels/FeedbackViewModel.csR2-R106)
  • Updated FeedbackView.xaml to bind to the FeedbackViewModel, utilize the new EnumToDescriptionConverter, and improve the user interface for submitting feedback. (FinTrack/Views/FeedbackView.xaml - FinTrack/Views/FeedbackView.xamlR6-R93)

Notification System Updates:

  • Refactored NotificationModel to include properties for title, message, timestamp, type, and read status. Removed the inline NotificationType enum in favor of the new standalone enum. (FinTrack/Models/Notification/NotificationModel.cs - [1] FinTrack/Models/NotificationModel.cs - [2]
  • Added NotificationViewModel to manage notification data, including loading sample notifications, marking notifications as read, and clearing or deleting notifications. (FinTrack/ViewModels/NotificationViewModel.cs - FinTrack/ViewModels/NotificationViewModel.csR2-R94)

The README has been rewritten in English, replacing the previous Turkish content. It now includes updated technology stack information (.NET 8, WPF, modern libraries), a revised project structure, clearer installation and contribution instructions, and improved feature descriptions. The documentation is now more concise, accessible to a wider audience, and reflects the current state and roadmap of the project.
…load

Introduced FeedbackTypes enum and EnumToDescriptionConverter for displaying enum descriptions in the UI. Enhanced FeedbackViewModel to support subject, description, feedback type selection, file attachment, and command-based form actions. Updated FeedbackView.xaml to bind to the new ViewModel properties and commands, enabling a fully functional feedback form with improved UX and FAQ links.
…dates

Introduced NotificationType enum and NotificationModel for structured notifications. Refactored NotificationViewModel to manage a collection of notifications, including commands for marking as read, clearing, and deleting. Updated NotificationView.xaml to bind to the new model and view model, displaying notifications dynamically with appropriate icons and actions.
Fixed NotificationModel's isUnread property to use the correct IsRead property. Cleaned up and reordered using directives in FeedbackViewModel and NotificationViewModel for better readability.
@EnesEfeTokta EnesEfeTokta requested a review from Copilot July 7, 2025 16:04
@EnesEfeTokta EnesEfeTokta self-assigned this Jul 7, 2025
@EnesEfeTokta EnesEfeTokta added the enhancement New feature or request label Jul 7, 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 overhauls documentation, introduces new enums & converters, and enhances the feedback and notification UIs with view models and bindings.

  • Revamped README with English content, updated structure, and installation steps
  • Added FeedbackTypes and NotificationType enums plus an EnumToDescriptionConverter
  • Improved Feedback and Notification views with MVVM bindings and commands

Reviewed Changes

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

Show a summary per file
File Description
README.md Updated English documentation and reorganized TOC
FinTrack/Helpers/EnumToDescriptionConverter.cs New converter for enum descriptions
FinTrack/Enums/FeedbackTypes.cs Added feedback-type enum with descriptions
FinTrack/Enums/NotificationType.cs Added notification-type enum
FinTrack/Models/NotificationModel.cs Removed inline enum
FinTrack/Models/Notification/NotificationModel.cs New observable notification model
FinTrack/ViewModels/FeedbackViewModel.cs Added feedback VM with commands
FinTrack/ViewModels/NotificationViewModel.cs Added notification VM with commands
FinTrack/Views/FeedbackView.xaml Bound feedback form to VM and converters
FinTrack/Views/NotificationView.xaml Bound notification list to VM and actions
Comments suppressed due to low confidence (6)

FinTrack/Models/Notification/NotificationModel.cs:24

  • Property names should follow PascalCase. Rename 'isUnread' to 'IsUnread' to align with .NET naming conventions and improve readability.
        public bool isUnread => !IsRead;

FinTrack/Views/FeedbackView.xaml:36

  • [nitpick] The label 'TYPE OF PAPER' is misleading in a feedback form. Consider renaming it to 'FEEDBACK TYPE' or simply 'TYPE'.
                    <TextBlock Text="TYPE OF PAPER" Style="{StaticResource LabelTextStyle}"/>

README.md:85

  • The domain 'fintrac.com' is missing a 'k'. Update it to 'fintrack.com' so links point to the correct site.
├── Models/       # Domain models and entities.

FinTrack/Views/NotificationView.xaml:12

  • The design-time DataContext uses an undefined 'local' alias. Replace 'local' with the 'vm' namespace alias (xmlns:vm) so it resolves correctly.
             d:DataContext="{d:DesignInstance Type=local:NotificationViewModel, IsDesignTimeCreatable=True}"

FinTrack/Views/FeedbackView.xaml:11

  • The design-time DataContext refers to 'local:FeedbackViewModel' but no 'local' xmlns is defined. Use the 'vm' alias (xmlns:vm) for ViewModel bindings.
             d:DataContext="{d:DesignInstance Type=local:FeedbackViewModel, IsDesignTimeCreatable=True}"

FinTrack/Views/NotificationView.xaml:101

  • The binding path 'IsUnread' won’t match the lowercase 'isUnread' property. Either rename the property to 'IsUnread' or update the binding to 'isUnread'.
                                        Visibility="{Binding IsUnread, Converter={StaticResource BooleanToVisibilityConverter}}">

if (notification.isUnread)
{
notification.IsRead = true;
_logger.LogInformation($"Notification '{notification.Title}' marked as read.");
Copy link

Copilot AI Jul 7, 2025

Choose a reason for hiding this comment

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

Avoid string interpolation in logging to preserve structured logging. Use placeholder syntax, e.g., _logger.LogInformation("Notification '{Title}' marked as read.", notification.Title);

Suggested change
_logger.LogInformation($"Notification '{notification.Title}' marked as read.");
_logger.LogInformation("Notification '{Title}' marked as read.", notification.Title);

Copilot uses AI. Check for mistakes.
if (openFileDialog.ShowDialog() == true)
{
SelectedFilePath = openFileDialog.FileName;
_logger.LogInformation("Seçilen dosya: {FilePath}", SelectedFilePath);
Copy link

Copilot AI Jul 7, 2025

Choose a reason for hiding this comment

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

[nitpick] This log message is in Turkish. For consistency with the rest of the code and UI, translate it to English, e.g., 'Selected file: {FilePath}'.

Suggested change
_logger.LogInformation("Seçilen dosya: {FilePath}", SelectedFilePath);
_logger.LogInformation("Selected file: {FilePath}", SelectedFilePath);

Copilot uses AI. Check for mistakes.
@EnesEfeTokta EnesEfeTokta merged commit 5291cfc into main Jul 7, 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