Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        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));
        }