Files
TradeBlotter/Model/ValuationModel.cs
2024-02-23 06:58:53 -05:00

346 lines
8.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Input;
using System.Windows;
using System.ComponentModel;
using MarketData;
using MarketData.Utils;
using MarketData.Helper;
using MarketData.MarketDataModel;
using MarketData.DataAccess;
using TradeBlotter.Model;
using TradeBlotter.DataAccess;
using TradeBlotter.Command;
using TradeBlotter.ViewModels;
namespace TradeBlotter.Model
{
public class ValuationModel : ModelBase
{
private readonly Valuation valuation;
private readonly DateTime valuationDate;
private bool isSelected;
public ValuationModel(Valuation valuation,DateTime valuationDate)
{
if (null == valuation) throw new ArgumentNullException("valuation");
this.valuation = valuation;
this.valuationDate = valuationDate;
PropertyChanged += OnValuationViewModelPropertyChanged;
}
//***************************************************************************************************
private void OnValuationViewModelPropertyChanged(object sender, PropertyChangedEventArgs eventArgs)
{
}
public String ValuationDate
{
get { return Utility.DateTimeToStringMMSDDSYYYY(valuationDate); }
}
public String Symbol
{
get{return valuation.Symbol;}
}
public String Company
{
get{return valuation.Company;}
}
public double DebtToEquity
{
get{return valuation.DebtToEquity;}
}
public String Sector
{
get{return valuation.Sector;}
}
public String Industry
{
get{return valuation.Industry;}
}
public double MarketCap
{
get{return valuation.MarketCap;}
}
public double EarningsYield
{
get{return valuation.EarningsYield;}
}
public double DividendYield
{
get{return valuation.DividendYield;}
}
public double EBIT
{
get{return valuation.EBIT;}
}
public double EnterpriseValue
{
get{return valuation.EnterpriseValue;}
}
public double OperatingEarnings
{
get{return valuation.OperatingEarnings;}
}
public double AcquirersMultiple
{
get{return valuation.AcquirersMultiple;}
}
public double AMRank
{
get{return valuation.AMRank;}
}
public double TLBRankROIC
{
get{return valuation.TLBRankROIC;}
}
public double TLBRankROC
{
get{return valuation.TLBRankROC;}
}
public String SEC13
{
get { return Utility.BooleanToYesNoString(valuation.SEC13); }
}
public String SEC13FilingDate
{
get{return Utility.IsEpoch(valuation.SEC13FilingDate)?Constants.CONST_DASHES:Utility.DateTimeToStringMMHDDHYYYY(valuation.SEC13FilingDate);}
}
public String Beta90
{
get { return Utility.FormatNumber(valuation.Beta90,2); }
}
public String Beta2Y
{
get { return Utility.FormatNumber(valuation.Beta720,2); }
}
public DateTime NextEarningsDate
{
get{return valuation.NextEarningsDate;}
}
public String LongTermDebt
{
get { return Utility.FormatCurrency(valuation.LongTermDebt); }
}
public String Revenue
{
get { return Utility.FormatCurrency(valuation.Revenue); }
}
public String DebtLoad
{
get { return valuation.DebtLoad; }
}
public double AverageROIC
{
get { return valuation.AverageROIC; }
}
public double LatestROIC
{
get { return valuation.LatestROIC/100.00; }
}
public double LatestROC
{
get { return valuation.LatestROC; }
}
public double ROICSlope
{
get { return valuation.ROICSlope; }
}
public String ROICDates
{
get { return valuation.ROICDates; }
}
public String BVPSDates
{
get { return valuation.BVPSDates; }
}
public double AverageEquityGrowth
{
get { return valuation.AverageEquityGrowth; }
}
public double AverageEquityGrowth2Y
{
get { return valuation.AverageEquityGrowth2Y; }
}
public double AverageEquityGrowth4Y
{
get { return valuation.AverageEquityGrowth4Y; }
}
public String EPSDates
{
get { return valuation.EPSDates; }
}
public double AverageEPSGrowth
{
get { return valuation.AverageEPSGrowth; }
}
public double AverageEPSGrowth2Y
{
get { return valuation.AverageEPSGrowth2Y; }
}
public double AverageEPSGrowth4Y
{
get { return valuation.AverageEPSGrowth4Y; }
}
public String RevenueDates
{
get { return valuation.RevenueDates; }
}
public double AverageRevenueGrowth
{
get { return valuation.AverageRevenueGrowth; }
}
public double AverageRevenueGrowth2Y
{
get { return valuation.AverageRevenueGrowth2Y; }
}
public double AverageRevenueGrowth4Y
{
get { return valuation.AverageRevenueGrowth4Y; }
}
public double AverageFreeCashflowGrowth
{
get { return valuation.AverageFreeCashflowGrowth; }
}
public double AverageOperatingCashflow
{
get { return valuation.AverageOperatingCashflow; }
}
public double AverageWorkingCapital
{
get { return valuation.AverageWorkingCapital; }
}
public double BVPS
{
get { return valuation.BVPS; }
}
public double PBVPS
{
get { return valuation.PBVPS; }
}
public double EPS
{
get { return valuation.EPS; }
}
public double PE
{
get { return valuation.PE; }
}
public double PEG
{
get { return valuation.PEG; }
}
public double ImpliedEarningsGrowth
{
get { return valuation.ImpliedEarningsGrowth; }
}
public double LowPE
{
get { return valuation.LowPE; }
}
public double TrailingPE
{
get { return valuation.TrailingPE; }
}
public double AverageLowTrailing
{
get { return valuation.AverageLowTrailing; }
}
public double CurrentStockEstimatePrice
{
get { return valuation.CurrentStockEstimatePrice; }
}
public double PriceEstimate10Y
{
get { return valuation.PriceEstimate10Y; }
}
public double TodaysPriceForRequiredReturn
{
get { return valuation.TodaysPriceForRequiredReturn; }
}
public double MOS
{
get { return valuation.MOS; }
}
public double MOS80
{
get { return valuation.MOS80; }
}
public double IntrinsicValue
{
get { return valuation.IntrinsicValue; }
}
public double FundamentalValue
{
get{return valuation.FundamentalValue;}
}
public double NetCurrentAssetValuePerShare
{
get{return valuation.NetCurrentAssetValuePerShare;}
}
public double RGV
{
get { return valuation.RGV; }
}
public double LatestPrice
{
get { return valuation.LatestPrice; }
}
public double UpsidePcnt
{
get { return valuation.UpsidePcnt; }
}
public double DownsidePcnt
{
get { return valuation.DownsidePcnt; }
}
public double MeanTargetPrice
{
get { return valuation.MeanTargetPrice; }
}
public double LowTargetPrice
{
get { return valuation.LowTargetPrice; }
}
public double HighTargetPrice
{
get { return valuation.HighTargetPrice; }
}
public String Bargain
{
get { return Utility.BooleanToYesNoString(valuation.Bargain); }
}
public String Bargain80
{
get { return Utility.BooleanToYesNoString(valuation.Bargain80); }
}
public String SharesOutstanding
{
get { return Utility.FormatNumber(valuation.SharesOutstanding,0,true); }
}
public String OperatingCashflow
{
get { return Utility.FormatCurrency(valuation.OperatingCashflow,2); }
}
public String PCF(double price=double.NaN)
{
return Utility.FormatNumber(valuation.PCF(price),2,true);
}
public String DateGenerated
{
get { return Utility.DateTimeToStringMMSDDSYYYY(valuation.Modified); }
}
public bool IsSelected
{
get { return isSelected; }
set
{
if (value == isSelected) return;
isSelected = value;
base.OnPropertyChanged("IsSelected");
}
}
}
}