public OwnedOptionView(OwnedOption o) { Id = o.State.Id; Ticker = o.State.Ticker; OptionType = o.State.OptionType.ToString(); StrikePrice = o.State.StrikePrice; ExpirationDate = o.State.Expiration.ToString("yyyy-MM-dd"); NumberOfContracts = Math.Abs(o.State.NumberOfContracts); BoughtOrSold = o.State.SoldToOpen.Value ? "Sold" : "Bought"; Filled = o.State.FirstFill.Value; Days = o.State.Days; DaysHeld = o.State.DaysHeld; Transactions = o.State.Transactions.Where(t => !t.IsPL).ToList(); ExpiresSoon = o.State.ExpiresSoon; IsExpired = o.State.IsExpired; Closed = o.State.Closed; Assigned = o.State.Assigned; Notes = o.State.Notes; var credits = o.State.Transactions.Where(t => !t.IsPL && t.Profit >= 0); var debits = o.State.Transactions.Where(t => !t.IsPL && t.Profit < 0); if (credits.Any()) { PremiumReceived = credits.Sum(t => t.Credit); } if (debits.Any()) { PremiumPaid = debits.Sum(t => t.Debit); } }
public OwnedOptionView(OwnedOption option, decimal currentPrice) : this(option) { ApplyPrice(currentPrice); }