Files
Avalonia/PortfolioManager/Dialogs/EditPositionDialogNoStopViewModel.cs
2025-06-10 19:03:43 -04:00

78 lines
1.9 KiB
C#

using System;
using System.Threading.Tasks;
using Avalonia.Controls;
using CommunityToolkit.Mvvm.Input;
using MarketData.DataAccess;
using MarketData.Generator.Interface;
using MarketData.MarketDataModel;
using MarketData.Utils;
using PortfolioManager.ViewModels;
namespace PortfolioManager.Dialogs
{
public partial class EditPositionDialogNoStopViewModel : DialogViewModelBase
{
private IPurePosition sourcePosition;
public EditPositionDialogNoStopViewModel(Window dialogWindow, IPurePosition clonedPosition)
: base(dialogWindow)
{
sourcePosition = clonedPosition;
DisplayName = "Edit Position";
}
public String Symbol
{
get { return sourcePosition.Symbol; }
}
public String CompanyName
{
get
{
CompanyProfile companyProfile = CompanyProfileDA.GetCompanyProfile(sourcePosition.Symbol);
return companyProfile.CompanyName;
}
}
public String PurchaseDate
{
get
{
return sourcePosition.PurchaseDate.ToShortDateString();
}
}
public String PurchasePrice
{
get
{
return Utility.FormatCurrency(sourcePosition.PurchasePrice);
}
set
{
sourcePosition.PurchasePrice = Utility.ParseCurrency(value);
base.OnPropertyChanged("PurchasePrice");
}
}
public IPurePosition GetResult()
{
return sourcePosition;
}
[RelayCommand]
public async Task OkButtonClick()
{
IsSuccess = true;
await Close();
}
[RelayCommand]
public async Task CancelButtonClick()
{
await Close();
}
}
}