public JsonResult CanvasTransaction([FromBody] string userId) { var portfolioBO = new PortfolioBusinessObject(); var userPortifolio = portfolioBO.GetUserPortfolio(userId); List <object> iDados = new List <object>(); DataTable chartTransaction = new DataTable(); chartTransaction.Columns.Add("Year", typeof(System.String)); chartTransaction.Columns.Add("TotalGainLoss", typeof(System.Double)); chartTransaction.Columns.Add("GrowthPercentage", typeof(System.Double)); chartTransaction.Columns.Add("CurrentValue", typeof(System.Double)); if (userPortifolio.PortfolioGraphInfo != null) { foreach (var data in userPortifolio.PortfolioGraphInfo) { chartTransaction.Rows.Add(data.Year, Math.Round((double)(data.TotalGainLoss), 2), Math.Round((double)(data.GrowthPercentage), 2), Math.Round((double)(data.CurrentValue), 2)); } foreach (DataColumn dataColumn in chartTransaction.Columns) { List <object> totalGainLossList = new List <object>(); totalGainLossList = (from DataRow dataRow in chartTransaction.Rows select dataRow[dataColumn.ColumnName]).ToList(); iDados.Add(totalGainLossList); } } return(Json(iDados)); }
public IActionResult UserTransactions() { var model = new UserTransactionViewModel(); model.AspNetUserId = User.Identity.GetUserId(); var portfolioBusiness = new PortfolioBusinessObject(); var result = portfolioBusiness.GetUserPortfolio(User.Identity.GetUserId()); model.CompaniesTransactions = result.CompaniesTransactions; model.TotalTransactions = result.TotalTransactions; var weightModel = _weightMultiplierBO.List().Result.Where(w => w.AspNetUserId == model.AspNetUserId).FirstOrDefault(); if (weightModel != null) { model.WeightNumberAssetsToLiabilities = weightModel.WeightNumberAssetsToLiabilities; model.WeightNumberDebtToEquity = weightModel.WeightNumberDebtToEquity; model.WeightNumberEPS = weightModel.WeightNumberEPS; model.WeightNumberEquity = weightModel.WeightNumberEquity; model.WeightNumberPERatio = weightModel.WeightNumberPERatio; model.WeightNumberRevenue = weightModel.WeightNumberRevenue; model.WeightNumberRoic = weightModel.WeightNumberRoic; } var analysis = new AnalysisBusinessObject(); var stockItemPocos = analysis.GetStockData(); var companyList = new List <Company>(); foreach (var item in stockItemPocos) { var company = item.CompanyDataPoco.Company; companyList.Add(company); } model.Companies = companyList; ViewBag.CompanyNames = model.Companies.Select(company => new SelectListItem() { Text = company.Name, Value = company.Id.ToString() }); return(View(model)); }
public IActionResult UserTransactions(UserTransactionViewModel vm) { var model = new UserTransactionViewModel(); var userTransaction = new UserTransaction(); userTransaction.AspNetUserId = User.Identity.GetUserId(); model.AspNetUserId = User.Identity.GetUserId(); if (vm.ValueOfShares != null) { model.CompanyId = vm.CompanyId; model.DateOfMovement = vm.DateOfMovement; userTransaction.CompanyId = vm.CompanyId; userTransaction.DateOfMovement = vm.DateOfMovement; if (vm.IsAPurchaseOrSale == 0) { model.NumberOfShares = vm.NumberOfShares; model.ValueOfShares = vm.ValueOfShares; userTransaction.NumberOfShares = vm.NumberOfShares; userTransaction.ValueOfShares = vm.ValueOfShares; userTransaction.NumberOfSharesWithdrawn = 0; userTransaction.ValueOfSharesWithdrawn = 0; } else { model.NumberOfSharesWithdrawn = vm.NumberOfShares; model.ValueOfSharesWithdrawn = vm.ValueOfShares; userTransaction.NumberOfShares = 0; userTransaction.ValueOfShares = 0; userTransaction.NumberOfSharesWithdrawn = vm.NumberOfShares; userTransaction.ValueOfSharesWithdrawn = vm.ValueOfShares; } var portfolioBusiness = new PortfolioBusinessObject(); var result = portfolioBusiness.GetUserPortfolio(User.Identity.GetUserId()); model.CompaniesTransactions = result.CompaniesTransactions; model.TotalTransactions = result.TotalTransactions; var analysis = new AnalysisBusinessObject(); var stockItemPocos = analysis.GetStockData(); var companyList = new List <Company>(); foreach (var item in stockItemPocos) { var company = item.CompanyDataPoco.Company; companyList.Add(company); } model.Companies = companyList; ViewBag.CompanyNames = model.Companies.Select(company => new SelectListItem() { Text = company.Name, Value = company.Id.ToString() }); var createOperation = _userTransactionBO.Create(userTransaction); Response.Redirect("UserTransactions"); } //Caso seja introduzida uma transação e o utilizador não se lembrar do value da compra if (vm.ValueOfShares == null && vm.NumberOfShares != null) { var stockValues = _stockValuesBO.GetStockValuesPerYear(vm.CompanyId); var valueInYear = stockValues.Components.Where(x => x.Year == vm.DateOfMovement.Year); var marketCap = valueInYear.Select(x => x.MarketCap).SingleOrDefault(); var sharesBasic = valueInYear.Select(x => x.SharesBasic).SingleOrDefault(); var stockValue = marketCap / sharesBasic; model.CompanyId = vm.CompanyId; model.DateOfMovement = vm.DateOfMovement; userTransaction.CompanyId = vm.CompanyId; userTransaction.DateOfMovement = vm.DateOfMovement; if (vm.IsAPurchaseOrSale == 0) { model.NumberOfShares = vm.NumberOfShares; model.ValueOfShares = stockValue; userTransaction.NumberOfShares = vm.NumberOfShares; userTransaction.ValueOfShares = stockValue; userTransaction.NumberOfSharesWithdrawn = 0; userTransaction.ValueOfSharesWithdrawn = 0; } else { model.NumberOfSharesWithdrawn = vm.NumberOfShares; model.ValueOfSharesWithdrawn = stockValue; userTransaction.NumberOfShares = 0; userTransaction.ValueOfShares = 0; userTransaction.NumberOfSharesWithdrawn = vm.NumberOfShares; userTransaction.ValueOfSharesWithdrawn = stockValue; } var portfolioBusiness = new PortfolioBusinessObject(); var result = portfolioBusiness.GetUserPortfolio(User.Identity.GetUserId()); model.CompaniesTransactions = result.CompaniesTransactions; model.TotalTransactions = result.TotalTransactions; var analysis = new AnalysisBusinessObject(); var stockItemPocos = analysis.GetStockData(); var companyList = new List <Company>(); foreach (var item in stockItemPocos) { var company = item.CompanyDataPoco.Company; companyList.Add(company); } model.Companies = companyList; ViewBag.CompanyNames = model.Companies.Select(company => new SelectListItem() { Text = company.Name, Value = company.Id.ToString() }); var createOperation = _userTransactionBO.Create(userTransaction); Response.Redirect("UserTransactions"); } return(View(model)); }