public PortfolioItem AddItem(IDbContext context, Security security, decimal units) { var item = new PortfolioItem(this, security, units); context.PortfolioItems.Add(item); return item; }
public async Task<ActionResult> Skapa(PortfolioItem portfolioItem) { if (ModelState.IsValid) { db.PortfolioItems.Add(portfolioItem.AssignValues()); await db.SaveChangesAsync(); return RedirectToAction("Index"); } return View(portfolioItem); }
public async Task<ActionResult> Redigera(PortfolioItem portfolioItem) { if (ModelState.IsValid) { db.Entry(portfolioItem.AssignValues()).State = EntityState.Modified; await db.SaveChangesAsync(); return RedirectToAction("Index"); } return View(portfolioItem); }
private string GetEigenValue(List <PortfolioItem> portfolioItems) { PortfolioItem prePos = null; double preQuantity = 1; StringBuilder value = new StringBuilder(); List <PortfolioOption> portfolioOptions = portfolioItems.Where(item => item is PortfolioOption).Cast <PortfolioOption>() .Where(item => item.OptionHoldingQuantity != 0).ToList(); if (portfolioOptions == null || portfolioOptions.Count == 0) { portfolioOptions = portfolioItems.Where(item => item is PortfolioOption).Cast <PortfolioOption>().ToList(); } List <PortfolioStock> portfolioStocks = portfolioItems.Where(item => item is PortfolioStock).Cast <PortfolioStock>().ToList(); long multiplier = portfolioOptions.Where(p => p.OptionType != OptionType.Security).Select(p => p.PremiumMultiplier).FirstOrDefault(); if (multiplier == 0) { multiplier = 1000; } portfolioItems = new List <PortfolioItem>(); portfolioItems.AddRange(portfolioStocks); portfolioItems.AddRange(portfolioOptions .OrderBy(x => x.StrikePrice) .ThenBy(x => x.Expiry.FutureDate) .ThenBy(x => (x.OptionType == OptionType.Call || x.OptionType == OptionType.CoveredCall)? -1 : 1)); foreach (PortfolioItem portfolioItem in portfolioItems) { double quantity = portfolioItem.AdjustedAvailableQuantity; if (!portfolioItem.IsStock()) { quantity = portfolioItem.ToPortfolioOption().AdjustedT0Quantity; if (Math.Abs(quantity) < 0.1) { quantity = portfolioItem.AdjustedBalance; } } int result; if (prePos != null) { if (prePos.IsStock()) { preQuantity = Convert.ToDouble(prePos.AdjustedBalance) / multiplier; } else { preQuantity = prePos.ToPortfolioOption().AdjustedT0Quantity; if (Math.Abs(preQuantity) < 0.1) { preQuantity = prePos.AdjustedBalance; } } } if (portfolioItem.IsStock()) { quantity = Convert.ToInt32(portfolioItem.AdjustedBalance / multiplier); } if (prePos != null) { result = (int)(quantity / preQuantity * 100); } else { result = quantity > 0 ? 1 : -1; } value.Append(result); if (prePos == null || prePos.IsStock()) { result = 2; } else { result = Math.Sign((prePos.ToPortfolioOption().Expiry.FutureDate - portfolioItem.ToPortfolioOption().Expiry.FutureDate).Days); } value.Append(result); if (prePos == null || prePos.IsStock()) { result = 2; } else { result = prePos.ToPortfolioOption().StrikePrice == portfolioItem.ToPortfolioOption().StrikePrice ? 1 : 0; } value.Append(result); //switch...case is not applicable if (portfolioItem.IsStock()) { result = 0; } else { PortfolioOption portfolioOption = portfolioItem.ToPortfolioOption(); if (portfolioOption.OptionType == OptionType.Call) { result = 1; } if (portfolioOption.OptionType == OptionType.Put) { result = 2; } } value.Append(result); prePos = portfolioItem; value.Append("|"); } return(value.ToString()); }
public void Add(Portfolio portfolio, Security security, decimal units) { var item = new PortfolioItem(portfolio, security, units); _context.PortfolioItems.Add(item); }
public bool UpdateItemById(PortfolioItem b) { return(portfolioInterface.UpdateItemById(b)); }
public bool CreateNewItem(PortfolioItem b) { return(portfolioInterface.CreateNewItem(b)); }
public ActionResult GetPortfolio(string Id) { PortfolioItem portfolios = _portfolioItemContext.Find(Id); return(View(portfolios)); }