Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
8f3df62
docs(README): Update README license badge, repo URL, and formatting
EnesEfeTokta Jul 13, 2025
bf262dc
refactor(*.cs): Refactor budget dashboard model and add budget service
EnesEfeTokta Jul 15, 2025
6f7623c
refactor(*.cs): Rename namespaces to FinTrackForWindows
EnesEfeTokta Jul 15, 2025
bb574f1
refactor(App): Update namespace to FinTrackForWindows in App.xaml.cs
EnesEfeTokta Jul 15, 2025
45946ac
refactor(App): Refactor debt status enums and namespaces
EnesEfeTokta Jul 15, 2025
d505488
refactor(*.cs): Refactor registration to use first and last name fields
EnesEfeTokta Jul 15, 2025
3fa3017
fix(*.cs): Fix typo in RegisterRequestDto and improve registration flow
EnesEfeTokta Jul 15, 2025
9097fc8
feat(*.cs): Add DTOs and enhance budget/account/transaction features
EnesEfeTokta Jul 23, 2025
c10b7d4
feat(*.cs): Integrate API service into ViewModels and add chat DTOs
EnesEfeTokta Jul 24, 2025
443738e
refactor(*.xaml, *.cs): Refactor account model and view to use Balanc…
EnesEfeTokta Jul 24, 2025
56f97eb
feat(*.xaml, *.cs): Integrate account statistics chart and refactor a…
EnesEfeTokta Jul 25, 2025
0866f4a
refactor(*.cs): Clean up code formatting and unused usings
EnesEfeTokta Jul 25, 2025
70f6d89
fix(*.cs): Fix property name casing in budget update logic
EnesEfeTokta Jul 25, 2025
fe4391c
feat(*.cs & *.xaml): Add currency DTOs and integrate API for rates
EnesEfeTokta Jul 26, 2025
f267098
refactor(CurrenciesViewModel): Reorder using directives in Currencies…
EnesEfeTokta Jul 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions FinTrack/App.xaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Application x:Class="FinTrack.App"
<Application x:Class="FinTrackForWindows.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:FinTrack">
xmlns:local="clr-namespace:FinTrackForWindows">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
Expand Down
12 changes: 6 additions & 6 deletions FinTrack/App.xaml.cs
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
using CommunityToolkit.Mvvm.Messaging;
using FinTrack.Core;
using FinTrack.Services;
using FinTrack.Services.Api;
using FinTrack.ViewModels;
using FinTrack.Views;
using FinTrackForWindows.Core;
using FinTrackForWindows.Services;
using FinTrackForWindows.Services.Api;
using FinTrackForWindows.ViewModels;
using FinTrackForWindows.Views;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Serilog;
using System.Windows;

namespace FinTrack
namespace FinTrackForWindows
{
public partial class App : Application
{
Expand Down
2 changes: 1 addition & 1 deletion FinTrack/Core/ISecureTokenStorage.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace FinTrack.Core
namespace FinTrackForWindows.Core
{
public interface ISecureTokenStorage
{
Expand Down
4 changes: 3 additions & 1 deletion FinTrack/Core/NewUserInformationManager.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
namespace FinTrack.Core
namespace FinTrackForWindows.Core
{
public static class NewUserInformationManager
{
public static string? FirstName { get; set; }
public static string? LastName { get; set; }
public static string? FullName { get; set; }
public static string? Email { get; set; }
public static string? Password { get; set; }
Expand Down
2 changes: 1 addition & 1 deletion FinTrack/Core/RelayCommand.cs
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
using System.Windows.Input;

namespace FinTrack.Core
namespace FinTrackForWindows.Core
{
public class RelayCommand : ICommand
{
private readonly Action<object> _execute;
private readonly Func<object, bool> _canExecute;

public RelayCommand(Action<object> execute, Func<object, bool> canExecute = null)

Check warning on line 10 in FinTrack/Core/RelayCommand.cs

View workflow job for this annotation

GitHub Actions / build-and-test

Cannot convert null literal to non-nullable reference type.
{
_execute = execute ?? throw new ArgumentNullException(nameof(execute));
_canExecute = canExecute;
}

public bool CanExecute(object parameter) => _canExecute == null || _canExecute(parameter);

Check warning on line 16 in FinTrack/Core/RelayCommand.cs

View workflow job for this annotation

GitHub Actions / build-and-test

Nullability of reference types in type of parameter 'parameter' of 'bool RelayCommand.CanExecute(object parameter)' doesn't match implicitly implemented member 'bool ICommand.CanExecute(object? parameter)' (possibly because of nullability attributes).
public void Execute(object parameter) => _execute(parameter);

Check warning on line 17 in FinTrack/Core/RelayCommand.cs

View workflow job for this annotation

GitHub Actions / build-and-test

Nullability of reference types in type of parameter 'parameter' of 'void RelayCommand.Execute(object parameter)' doesn't match implicitly implemented member 'void ICommand.Execute(object? parameter)' (possibly because of nullability attributes).
public event EventHandler CanExecuteChanged

Check warning on line 18 in FinTrack/Core/RelayCommand.cs

View workflow job for this annotation

GitHub Actions / build-and-test

Nullability of reference types in type of 'event EventHandler RelayCommand.CanExecuteChanged' doesn't match implicitly implemented member 'event EventHandler? ICommand.CanExecuteChanged'.
{
add => CommandManager.RequerySuggested += value;
remove => CommandManager.RequerySuggested -= value;
Expand Down
2 changes: 1 addition & 1 deletion FinTrack/Core/SecureTokenStorage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using System.Security.Cryptography;
using System.Text;

namespace FinTrack.Core
namespace FinTrackForWindows.Core
{
public class SecureTokenStorage : ISecureTokenStorage
{
Expand Down
2 changes: 1 addition & 1 deletion FinTrack/Core/SessionManager.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace FinTrack.Core
namespace FinTrackForWindows.Core
{
public static class SessionManager
{
Expand Down
2 changes: 1 addition & 1 deletion FinTrack/Core/TokenValidator.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using System.IdentityModel.Tokens.Jwt;

namespace FinTrack.Core
namespace FinTrackForWindows.Core
{
public static class TokenValidator
{
Expand Down
4 changes: 2 additions & 2 deletions FinTrack/Data/AppDatabaseContext.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
using FinTrack.Models;
using FinTrackForWindows.Models;
using Microsoft.EntityFrameworkCore;
using System.IO;

namespace FinTrack.Data
namespace FinTrackForWindows.Data
{
public class AppDatabaseContext : DbContext
{
Expand Down
12 changes: 12 additions & 0 deletions FinTrack/Dtos/AccountDtos/AccountCreateDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using FinTrackForWindows.Enums;

namespace FinTrackForWindows.Dtos.AccountDtos
{
public class AccountCreateDto
{
public string Name { get; set; } = null!;
public AccountType Type { get; set; }
public bool IsActive { get; set; }
public BaseCurrencyType Currency { get; set; }
}
}
16 changes: 16 additions & 0 deletions FinTrack/Dtos/AccountDtos/AccountDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using FinTrackForWindows.Enums;

namespace FinTrackForWindows.Dtos.AccountDtos
{
public class AccountDto
{
public int Id { get; set; }
public string Name { get; set; } = null!;
public AccountType Type { get; set; }
public bool IsActive { get; set; }
public decimal Balance { get; set; }
public BaseCurrencyType Currency { get; set; }
public DateTime CreatedAtUtc { get; set; }
public DateTime? UpdatedAtUtc { get; set; }
}
}
14 changes: 14 additions & 0 deletions FinTrack/Dtos/AccountDtos/AccountResponseDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
namespace FinTrackForWindows.Dtos.AccountDtos
{
public class AccountResponseDto
{
public int Id { get; set; }
public int UserId { get; set; }
public string Name { get; set; }

Check warning on line 7 in FinTrack/Dtos/AccountDtos/AccountResponseDto.cs

View workflow job for this annotation

GitHub Actions / build-and-test

Non-nullable property 'Name' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the property as nullable.
public string Type { get; set; }

Check warning on line 8 in FinTrack/Dtos/AccountDtos/AccountResponseDto.cs

View workflow job for this annotation

GitHub Actions / build-and-test

Non-nullable property 'Type' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the property as nullable.
public bool IsActive { get; set; }
public decimal Balance { get; set; }
public string Currency { get; set; }
public DateTime CreatedAtUtc { get; set; }
}
}
12 changes: 12 additions & 0 deletions FinTrack/Dtos/AccountDtos/AccountUpdateDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using FinTrackForWindows.Enums;

namespace FinTrackForWindows.Dtos.AccountDtos
{
public class AccountUpdateDto
{
public string Name { get; set; } = null!;
public AccountType Type { get; set; }
public bool IsActive { get; set; }
public BaseCurrencyType Currency { get; set; }
}
}
12 changes: 12 additions & 0 deletions FinTrack/Dtos/BudgetDtos/BudgetCategoryCreateDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using FinTrackForWindows.Enums;

namespace FinTrackForWindows.Dtos.BudgetDtos
{
public class BudgetCategoryCreateDto
{
public int BudgetId { get; set; }
public int CategoryId { get; set; }
public decimal AllocatedAmount { get; set; }
public BaseCurrencyType Currency { get; set; }
}
}
16 changes: 16 additions & 0 deletions FinTrack/Dtos/BudgetDtos/BudgetCategoryDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using FinTrackForWindows.Enums;
using FinTrackForWindows.Models;

namespace FinTrackForWindows.Dtos.BudgetDtos
{
public class BudgetCategoryDto
{
public int Id { get; set; }
public BudgetModel Budget { get; set; } = null!;
public CategoryModel Category { get; set; } = null!;
public decimal AllocatedAmount { get; set; }
public BaseCurrencyType Currency { get; set; }
public DateTime CreatedAtUtc { get; set; }
public DateTime? UpdatedAtUtc { get; set; }
}
}
12 changes: 12 additions & 0 deletions FinTrack/Dtos/BudgetDtos/BudgetCategoryUpdateDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using FinTrackForWindows.Enums;

namespace FinTrackForWindows.Dtos.BudgetDtos
{
public class BudgetCategoryUpdateDto
{
public int BudgetId { get; set; }
public int CategoryId { get; set; }
public decimal AllocatedAmount { get; set; }
public BaseCurrencyType Currency { get; set; }
}
}
16 changes: 16 additions & 0 deletions FinTrack/Dtos/BudgetDtos/BudgetCreateDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using FinTrackForWindows.Enums;

namespace FinTrackForWindows.Dtos.BudgetDtos
{
public class BudgetCreateDto
{
public string Name { get; set; } = null!;
public string? Description { get; set; }
public string Category { get; set; } = null!;
public decimal AllocatedAmount { get; set; }
public BaseCurrencyType Currency { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public bool IsActive { get; set; }
}
}
19 changes: 19 additions & 0 deletions FinTrack/Dtos/BudgetDtos/BudgetDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
using FinTrackForWindows.Enums;

namespace FinTrackForWindows.Dtos.BudgetDtos
{
public class BudgetDto
{
public int Id { get; set; }
public string Name { get; set; } = null!;
public string? Description { get; set; }
public string Category { get; set; } = null!;
public decimal AllocatedAmount { get; set; }
public BaseCurrencyType Currency { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public bool IsActive { get; set; }
public DateTime CreatedAtUtc { get; set; }
public DateTime? UpdatedAtUtc { get; set; }
}
}
16 changes: 16 additions & 0 deletions FinTrack/Dtos/BudgetDtos/BudgetUpdateDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using FinTrackForWindows.Enums;

namespace FinTrackForWindows.Dtos.BudgetDtos
{
public class BudgetUpdateDto
{
public string Name { get; set; } = null!;
public string? Description { get; set; }
public string Category { get; set; } = null!;
public decimal AllocatedAmount { get; set; }
public BaseCurrencyType Currency { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public bool IsActive { get; set; }
}
}
8 changes: 8 additions & 0 deletions FinTrack/Dtos/ChatDtos/ChatRequestDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace FinTrackForWindows.Dtos.ChatDtos
{
public class ChatRequestDto
{
public string Message { get; set; } = string.Empty;
public string? ClientChatSessionId { get; set; }
}
}
8 changes: 8 additions & 0 deletions FinTrack/Dtos/ChatDtos/ChatResponseDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace FinTrackForWindows.Dtos.ChatDtos
{
public class ChatResponseDto
{
public string? Reply { get; set; }
public DateTime ResponseTime { get; set; }
}
}
9 changes: 9 additions & 0 deletions FinTrack/Dtos/CurrencyDtos/CalculatedRatesDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace FinTrackWebApi.Dtos.CurrencyDtos
{
public class CalculatedRatesDto
{
public DateTime SnapshotTimestamp { get; set; }
public string BaseCurrency { get; set; } = string.Empty;
public Dictionary<string, decimal> CrossRates { get; set; } = new();
}
}
15 changes: 15 additions & 0 deletions FinTrack/Dtos/CurrencyDtos/ChangeSummaryDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
namespace FinTrackWebApi.Dtos.CurrencyDtos
{
public class ChangeSummaryDto
{
// Değişim Miktarı
public decimal? DailyChangeValue { get; set; }
public decimal? WeeklyChangeValue { get; set; }
public decimal? MonthlyChangeValue { get; set; }

// Değişim Oranı
public decimal? DailyChangePercentage { get; set; }
public decimal? WeeklyChangePercentage { get; set; }
public decimal? MonthlyChangePercentage { get; set; }
}
}
14 changes: 14 additions & 0 deletions FinTrack/Dtos/CurrencyDtos/CurrencyHistoryDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
namespace FinTrackWebApi.Dtos.CurrencyDtos
{
public class CurrencyHistoryDto
{
public string BaseCurrency { get; set; } = string.Empty;
public string TargetCurrency { get; set; } = string.Empty;
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }

public ChangeSummaryDto ChangeSummary { get; set; } = new();

public List<HistoricalRatePointDto> HistoricalRates { get; set; } = new();
}
}
10 changes: 10 additions & 0 deletions FinTrack/Dtos/CurrencyDtos/CurrencySummaryDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
namespace FinTrackWebApi.Dtos.CurrencyDtos
{
public class CurrencySummaryDto
{
public int Id { get; set; }
public string Code { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public string? IconUrl { get; set; }
}
}
8 changes: 8 additions & 0 deletions FinTrack/Dtos/CurrencyDtos/HistoricalRatePointDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace FinTrackWebApi.Dtos.CurrencyDtos
{
public class HistoricalRatePointDto
{
public DateTime Date { get; set; }
public decimal Rate { get; set; }
}
}
9 changes: 9 additions & 0 deletions FinTrack/Dtos/CurrencyDtos/LatestRatesResponseDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace FinTrackWebApi.Dtos.CurrencyDtos
{
public class LatestRatesResponseDto
{
public string BaseCurrency { get; set; } = string.Empty;
public DateTime SnapshotTimestamp { get; set; }
public List<RateDetailDto> Rates { get; set; } = new();
}
}
14 changes: 14 additions & 0 deletions FinTrack/Dtos/CurrencyDtos/RateDetailDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
namespace FinTrackWebApi.Dtos.CurrencyDtos
{
public class RateDetailDto
{
public int Id { get; set; }
public string Code { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public string? CountryName { get; set; }
public string? CountryCode { get; set; }
public string? IconUrl { get; set; }

public decimal Rate { get; set; }
}
}
17 changes: 17 additions & 0 deletions FinTrack/Dtos/CurrencyDtos/SpecificCurrencyDto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
namespace FinTrackWebApi.Dtos.CurrencyDtos
{
public class SpecificCurrencyDto
{
public int Id { get; set; }
public string CurrencyCode { get; set; } = string.Empty;
public string CurrencyName { get; set; } = string.Empty;
public string? CountryCode { get; set; }
public string? CountryName { get; set; }
public string? Status { get; set; }
public DateTime? AvailableFrom { get; set; }
public DateTime? AvailableUntil { get; set; }
public string? IconUrl { get; set; }

public CalculatedRatesDto? RatesInfo { get; set; }
}
}
2 changes: 1 addition & 1 deletion FinTrack/Dtos/LoginRequestDto.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace FinTrack.Dtos
namespace FinTrackForWindows.Dtos
{
public class LoginRequestDto
{
Expand Down
5 changes: 3 additions & 2 deletions FinTrack/Dtos/RegisterRequestDto.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
namespace FinTrack.Dtos
namespace FinTrackForWindows.Dtos
{
public class RegisterRequestDto
{
public string? UserName { get; set; }
public string FirstName { get; set; } = null!;
public string LastName { get; set; } = null!;
public string Email { get; set; } = null!;
public string Password { get; set; } = null!;
public string? ProfilePicture { get; set; }
Expand Down
Loading
Loading