public static IList <StockCompany> GetAllStockCompany() { using (var db = new InvestmentEntities()) { return(db.StockCompanies.ToList()); } }
public static IList <RequestLog> GetRequestLog(RequestType requestType) { using (var db = new InvestmentEntities()) { return(db.RequestLogs.Where(x => x.ProcessedOn == null && x.RequestType == (int)requestType).ToList()); } }
public AddInvestment() { InitializeComponent(); using (InvestmentEntities entities = new InvestmentEntities()) { ddlInvestment.DataSource = entities.MutualFunds.OrderBy(mf => mf.MutualFundSymbol); ddlInvestment.ValueMember = "MutualFundID"; ddlInvestment.DisplayMember = "DisplayText"; } CalculateActual(); }
public static void AddRequestLog(string reqUrl, string reqBody, string respData, RequestType requestType) { using (var db = new InvestmentEntities()) { var rLog = db.RequestLogs.Create(); rLog.RequestType = (int)requestType; rLog.ResponseData = respData; rLog.RequestBody = reqBody; rLog.Url = reqUrl; rLog.CreatedOn = DateTime.UtcNow; db.RequestLogs.Add(rLog); db.SaveChanges(); } }
private void btnSave_Click(object sender, EventArgs e) { using (InvestmentEntities entities = new InvestmentEntities()) { MutualFundTransaction transaction = new MutualFundTransaction(); transaction.MutualFundID = Convert.ToInt32(ddlInvestment.SelectedValue); transaction.NumberOfShares = Decimal.Parse(txtNumberOfShares.Text); transaction.PricePerShare = Decimal.Parse(txtPricePerShare.Text); transaction.ActualAmount = Decimal.Parse(txtActualAmount.Text); transaction.TransactionDate = DateTime.Parse(txtTransactionDate.Text); transaction.Note = txtNote.Text; entities.MutualFundTransactions.AddObject(transaction); entities.SaveChanges(); } MessageBox.Show("This transaction has been saved"); }
private void btnSave_Click(object sender, EventArgs e) { using (InvestmentEntities entities = new InvestmentEntities()) { MutualFundReturn mfReturn = new MutualFundReturn(); mfReturn.MutualFundID = Convert.ToInt32(ddlInvestment.SelectedValue); mfReturn.NumberOfShares = Decimal.Parse(txtNumberOfShares.Text); mfReturn.PricePerShare = Decimal.Parse(txtPricePerShare.Text); mfReturn.Amount = Decimal.Parse(txtActualAmount.Text); mfReturn.TransactionDate = DateTime.Parse(txtTransactionDate.Text); mfReturn.MutualFundReturnTypeName = ddlReturnType.SelectedValue.ToString(); mfReturn.Destination = "Reinvest"; entities.MutualFundReturns.AddObject(mfReturn); entities.SaveChanges(); } MessageBox.Show("This return has been saved"); }
public static void UpdateStockCompany(StockCompany updStockComp) { using (var db = new InvestmentEntities()) { var stockCmp = db.StockCompanies.FirstOrDefault(x => x.TickerCode == updStockComp.TickerCode); if (stockCmp == null) { return; } if (updStockComp.LatsUpdatedOn != null) { stockCmp.LatsUpdatedOn = updStockComp.LatsUpdatedOn; } db.Entry <StockCompany>(stockCmp).State = EntityState.Modified; db.SaveChanges(); } }
public static void AddStockCompany(StockCompany newStockComp) { using (var db = new InvestmentEntities()) { var isExist = db.StockCompanies.Any(x => x.TickerCode == newStockComp.TickerCode); if (!isExist) { var newStockCmp = db.StockCompanies.Create(); newStockCmp.TickerCode = newStockComp.TickerCode; newStockCmp.CompanyName = newStockComp.CompanyName; newStockCmp.Industry = newStockComp.Industry; newStockCmp.IndustryGroup = newStockComp.IndustryGroup; newStockCmp.CreatedOn = DateTime.UtcNow; db.StockCompanies.Add(newStockCmp); db.SaveChanges(); } } }
public Form1() { InitializeComponent(); using (InvestmentEntities entities = new InvestmentEntities()) { var allInvestments = entities.MutualFundViews.Where(m => m.MutualFundID > 0).ToList(); var investmentList = allInvestments.Select(i => i.MutualFundSymbol).Distinct().ToList(); ReturnOnInvestment header = new ReturnOnInvestment("Fund Name", "Description", "Investments", "Dividends", "Current Value", "APY", "Yield L12", "Since"); flowLayoutPanel1.Controls.Add(header); CurrentValue = 0.0M; CurrentValue_ForLast12Calc = 0.0M; DateTime last12Start = entities.GetLast12StartDate().First().Value; //List<Task> taskList = new List<Task>(); foreach (String investment in investmentList) { GetInvestments(allInvestments.Where(f => f.MutualFundSymbol == investment).ToList(), investment, last12Start, entities); //var task = Task.Factory.StartNew(() => GetInvestments(allInvestments, investment)); //taskList.Add(task); } //Task.WaitAll(taskList.ToArray()); foreach (var control in returns.OrderBy(r => r.FundName)) { flowLayoutPanel1.Controls.Add(control); } Investments = allInvestments.Where(i => i.ReturnType == "Investment").Sum(i => i.Amount); Gains = allInvestments.Where(i => i.ReturnType != "Investment").Sum(i => i.Amount); ROI = Convert.ToDecimal(Calculations.IRR.solveIRR(allTransactions, Convert.ToDouble(CurrentValue), 1, 1000, DateTime.Now)); Decimal ROILast12 = Convert.ToDecimal(Calculations.IRR.solveIRR(transactionsLast12, Convert.ToDouble(CurrentValue_ForLast12Calc), 1, 1000, DateTime.Now)); flowLayoutPanel1.Controls.Add(new ReturnOnInvestment("Totals", "", this.Investments.ToString("c"), this.Gains.ToString("c"), this.CurrentValue.ToString("c"), this.ROI.ToString("p"), ROILast12.ToString("p"), "")); } }
public MutualFundCalculator(String fundName, List <MutualFundView> transactions, Boolean isOpenFund, DateTime last12Start, InvestmentEntities entities) { FundName = fundName; if (ValueToday == null && isOpenFund) { var mutualFund = entities.MutualFunds.Single(mf => mf.MutualFundSymbol == fundName); if (mutualFund.IsGoogleTracked) { //http://ichart.yahoo.com/table.csv?s=FSDIX&a=2&b=1&c=2013&d=2&e=1&f=2014&g=d&ignore=.csv a=Month-1, b=day, c=year (d, e, f = m,d,y end date) String url = "http://finance.google.com/finance/info?client=ig&q=" + fundName; WebRequest request = WebRequest.Create(url); WebResponse response = request.GetResponse(); String responseString = ""; using (Stream stream = response.GetResponseStream()) { using (StreamReader answer = new StreamReader(stream)) { responseString = answer.ReadToEnd(); } } ValueToday = JSONHelper.Deserialise <GoogleResults>(responseString); } else { GoogleResults r = new GoogleResults(); r.l = mutualFund.LastKnownValue.ToString(); ValueToday = r; } } Decimal todaysValue = !isOpenFund?transactions.OrderByDescending(t => t.TransactionDate).First().PricePerShare : Decimal.Parse(ValueToday.l); CurrentValue = todaysValue * transactions.Sum(i => i.NumberOfShares); Investments = transactions.Where(i => i.ReturnType == "Investment").Sum(i => i.Amount); Gains = transactions.Where(i => i.ReturnType != "Investment").Sum(i => i.Amount); FirstPurchase = transactions.OrderBy(i => i.TransactionDate).First().TransactionDate; Dictionary <DateTime, Double> allTransactions = new Dictionary <DateTime, double>(); foreach (MutualFundView fund in transactions) { if (fund.ReturnType == "Investment") { allTransactions.Add(fund.TransactionDate, Convert.ToDouble(fund.Amount)); if (fund.TransactionDate > last12Start) { TransactionsLast12.Add(fund.TransactionDate, Convert.ToDouble(fund.Amount)); } } } try { ROI = Convert.ToDecimal(Calculations.IRR.solveIRR(allTransactions, Convert.ToDouble(CurrentValue), 1, 1000, DateTime.Now)); if (allTransactions.Count == TransactionsLast12.Count) { ROILast12 = ROI; Last12Valid = true; } else { MutualFundPriceHistory historicalPrice = entities.MutualFundPriceHistories.SingleOrDefault(h => h.MutualFundSymbol == fundName && h.QuoteDate == last12Start); if (historicalPrice != null) { Decimal numberOfSharesYearAgo = transactions.Sum(i => i.NumberOfShares) - transactions.Where(i => i.TransactionDate > last12Start).Sum(i => i.NumberOfShares); TransactionsLast12.Add(last12Start, Convert.ToDouble(numberOfSharesYearAgo * historicalPrice.DayPrice)); ROILast12 = Convert.ToDecimal(Calculations.IRR.solveIRR(TransactionsLast12, Convert.ToDouble(CurrentValue), 1, 1000, DateTime.Now)); Last12Valid = true; } else { ROILast12 = 0; Last12Valid = false; } } } catch { //ROI = -1; //ROILast12 = -1; } }
private void GetInvestments(List <MutualFundView> allInvestments, String investment, DateTime last12Start, InvestmentEntities entities) { MutualFundCalculator mutualFund = new MutualFundCalculator(investment, allInvestments.Where(i => i.MutualFundSymbol == investment).ToList(), allInvestments.First(i => i.MutualFundSymbol == investment).HasBalance, last12Start, entities); String description = allInvestments.First(i => i.MutualFundSymbol == investment).MutualFundDescription; ReturnOnInvestment control = new ReturnOnInvestment(investment, description, mutualFund.Investments.ToString("c"), mutualFund.Gains.ToString("c"), mutualFund.CurrentValue.ToString("c"), mutualFund.ROI.ToString("p"), mutualFund.ROILast12_Display, mutualFund.FirstPurchase.ToString("M/d/yyyy")); if (allInvestments.First(i => i.MutualFundSymbol == investment).HasBalance) { returns.Add(control); } CurrentValue += mutualFund.CurrentValue; if (mutualFund.Last12Valid) { CurrentValue_ForLast12Calc += mutualFund.CurrentValue; } foreach (MutualFundView fund in allInvestments) { if (fund.ReturnType == "Investment") { allTransactions.Add(fund.TransactionDate.AddSeconds(counter), Convert.ToDouble(fund.Amount)); counter++; } } foreach (var key in mutualFund.TransactionsLast12.Keys) { if (mutualFund.Last12Valid) { transactionsLast12.Add(key.AddSeconds(counter), mutualFund.TransactionsLast12[key]); counter++; } } }