Esempio n. 1
0
 internal CorporateAction(Guid id, IReadOnlyStock stock, Date actionDate, string description)
 {
     Id          = id;
     Stock       = stock;
     Date        = actionDate;
     Description = description;
 }
Esempio n. 2
0
        public Holding(IReadOnlyStock stock, Date fromDate)
            : base(stock.Id)
        {
            Stock = stock;
            Start(fromDate);

            _Properties.Change(fromDate, new HoldingProperties(0, 0.00m, 0.00m));
        }
 internal Transformation(Guid id, IReadOnlyStock stock, Date actionDate, string description, Date implementationDate, decimal cashComponent, bool rolloverReliefApplies, IEnumerable <ResultingStock> resultingStocks)
     : base(id, stock, actionDate, description)
 {
     ImplementationDate     = implementationDate;
     CashComponent          = cashComponent;
     RolloverRefliefApplies = rolloverReliefApplies;
     _ResultingStocks.AddRange(resultingStocks);
 }
Esempio n. 4
0
        public Holding Add(IReadOnlyStock stock, Date fromDate)
        {
            var holding = new Holding(stock, fromDate);

            _Holdings.Add(stock.Id, holding);

            return(holding);
        }
 internal Dividend(Guid id, IReadOnlyStock stock, Date actionDate, string description, Date paymentDate, decimal dividendAmount, decimal percentFranked, decimal drpPrice)
     : base(id, stock, actionDate, description)
 {
     PaymentDate    = paymentDate;
     DividendAmount = dividendAmount;
     PercentFranked = percentFranked;
     DrpPrice       = drpPrice;
 }
        public static RestApi.Portfolios.Stock ToSummaryResponse(this IReadOnlyStock stock, Date date)
        {
            var stockProperties = stock.Properties.ClosestTo(date);

            var result = new RestApi.Portfolios.Stock()
            {
                Id       = stock.Id,
                AsxCode  = stockProperties.AsxCode,
                Name     = stockProperties.Name,
                Category = stockProperties.Category.ToResponse()
            };

            return(result);
        }
 public void Add(Date date, IReadOnlyStock stock, int units, decimal costBase, decimal amountReceived, decimal capitalGain, CgtMethod cgtMethod)
 {
     Add(new CgtEvent()
     {
         Id             = Guid.NewGuid(),
         Date           = date,
         Stock          = stock,
         Units          = units,
         CostBase       = costBase,
         AmountReceived = amountReceived,
         CapitalGain    = capitalGain,
         CgtMethod      = cgtMethod
     });
 }
Esempio n. 8
0
        private void OnCgtEventOccured(Date eventDate, IReadOnlyStock stock, int units, decimal costBase, decimal amountReceived, decimal capitalGain, CgtMethod cgtMethod, IPortfolioTransaction transaction)
        {
            // Make a temporary copy of the event to avoid possibility of
            // a race condition if the last subscriber unsubscribes
            // immediately after the null check and before the event is raised.
            var handler = CgtEventOccurred;

            if (handler != null)
            {
                var e = new CgtEventArgs()
                {
                    EventDate      = eventDate,
                    Stock          = stock,
                    Units          = units,
                    CostBase       = costBase,
                    AmountReceived = amountReceived,
                    CapitalGain    = capitalGain,
                    CgtMethod      = cgtMethod,
                    Transaction    = transaction
                };

                handler(this, e);
            }
        }
Esempio n. 9
0
 internal CompositeAction(Guid id, IReadOnlyStock stock, Date actionDate, string description, IEnumerable <ICorporateAction> childActions)
     : base(id, stock, actionDate, description)
 {
     ChildActions = childActions;
 }
Esempio n. 10
0
 internal SplitConsolidation(Guid id, IReadOnlyStock stock, Date actionDate, string description, int originalUnits, int newUnits)
     : base(id, stock, actionDate, description)
 {
     OriginalUnits = originalUnits;
     NewUnits      = newUnits;
 }
 internal CapitalReturn(Guid id, IReadOnlyStock stock, Date actionDate, string description, Date paymentDate, decimal amount)
     : base(id, stock, actionDate, description)
 {
     PaymentDate = paymentDate;
     Amount      = amount;
 }