Beispiel #1
0
        public IActionResult Index(IndexViewModel vm)
        {
            var model                = new IndexViewModel();
            var analysis             = new AnalysisBusinessObject();
            var stockFitnessAnalysis = analysis.GetStockData(vm.WeightNumberRoic, vm.WeightNumberEquity, vm.WeightNumberEPS, vm.WeightNumberRevenue, vm.WeightNumberPERatio, vm.WeightNumberDebtToEquity, vm.WeightNumberAssetsToLiabilities);

            foreach (var poco in stockFitnessAnalysis)
            {
                var homeData = new HomeDataPoco();
                homeData.CompanyName        = poco.CompanyDataPoco.Company.Name;
                homeData.Ticker             = poco.CompanyDataPoco.Company.Ticker;
                homeData.MarketAnalyzerRank = poco.MarketAnalyzerRank;
                if (poco.CompanyDataPoco.Company.StockPrice != 0)
                {
                    homeData.StockPrice = poco.CompanyDataPoco.Company.StockPrice;
                }
                homeData.Fitness = poco.Fitness;
                homeData.Ticker  = poco.CompanyDataPoco.Company.Ticker;
                model.HomeDataPocos.Add(homeData);
            }

            model.WeightNumberRoic                = Convert.ToDouble(vm.WeightNumberRoic, CultureInfo.InvariantCulture);
            model.WeightNumberEquity              = Convert.ToDouble(vm.WeightNumberEquity, CultureInfo.InvariantCulture);
            model.WeightNumberEPS                 = Convert.ToDouble(vm.WeightNumberEPS, CultureInfo.InvariantCulture);
            model.WeightNumberRevenue             = Convert.ToDouble(vm.WeightNumberRevenue, CultureInfo.InvariantCulture);
            model.WeightNumberPERatio             = Convert.ToDouble(vm.WeightNumberPERatio, CultureInfo.InvariantCulture);
            model.WeightNumberDebtToEquity        = Convert.ToDouble(vm.WeightNumberDebtToEquity, CultureInfo.InvariantCulture);
            model.WeightNumberAssetsToLiabilities = Convert.ToDouble(vm.WeightNumberAssetsToLiabilities, CultureInfo.InvariantCulture);

            return(View(model));
        }
        public IActionResult Index()
        {
            var model                = new IndexViewModel();
            var analysis             = new AnalysisBusinessObject();
            var stockFitnessAnalysis = analysis.GetStockData();


            foreach (var poco in stockFitnessAnalysis)
            {
                var homeData = new HomeDataPoco();
                homeData.CompanyName        = poco.CompanyDataPoco.Company.Name;
                homeData.Ticker             = poco.CompanyDataPoco.Company.Ticker;
                homeData.MarketAnalyzerRank = poco.MarketAnalyzerRank;
                if (poco.CompanyDataPoco.Company.StockPrice != 0)
                {
                    homeData.StockPrice = poco.CompanyDataPoco.Company.StockPrice;
                }
                homeData.Fitness = poco.Fitness;
                homeData.Ticker  = poco.CompanyDataPoco.Company.Ticker;
                model.HomeDataPocos.Add(homeData);
            }

            model.HomeDataPocos.OrderByDescending(l => l.MarketAnalyzerRank);

            return(View(model));
        }
Beispiel #3
0
        public IActionResult Index()
        {
            var model                = new IndexViewModel();
            var analysis             = new AnalysisBusinessObject();
            var stockFitnessAnalysis = new List <StockItemPoco>();
            var user = User.Identity.GetUserId();

            var weight = analysis.GetWeightMultipliers(user);

            if (weight != null)
            {
                model.WeightNumberRoic                = weight.WeightNumberRoic;
                model.WeightNumberEquity              = weight.WeightNumberEquity;
                model.WeightNumberEPS                 = weight.WeightNumberEPS;
                model.WeightNumberRevenue             = weight.WeightNumberRevenue;
                model.WeightNumberPERatio             = weight.WeightNumberPERatio;
                model.WeightNumberAssetsToLiabilities = weight.WeightNumberAssetsToLiabilities;
                model.WeightNumberDebtToEquity        = weight.WeightNumberDebtToEquity;
                stockFitnessAnalysis = analysis.GetStockData(model.WeightNumberRoic, model.WeightNumberEquity, model.WeightNumberEPS, model.WeightNumberRevenue, model.WeightNumberPERatio, model.WeightNumberDebtToEquity, model.WeightNumberAssetsToLiabilities);
            }
            else
            {
                stockFitnessAnalysis = analysis.GetStockData();
            }

            foreach (var poco in stockFitnessAnalysis)
            {
                var homeData = new HomeDataPoco();
                homeData.CompanyName        = poco.CompanyDataPoco.Company.Name;
                homeData.Ticker             = poco.CompanyDataPoco.Company.Ticker;
                homeData.MarketAnalyzerRank = poco.MarketAnalyzerRank;
                if (poco.CompanyDataPoco.Company.StockPrice != 0)
                {
                    homeData.StockPrice = poco.CompanyDataPoco.Company.StockPrice;
                }
                homeData.Fitness = poco.Fitness;
                homeData.Ticker  = poco.CompanyDataPoco.Company.Ticker;
                model.HomeDataPocos.Add(homeData);
            }

            model.HomeDataPocos.OrderByDescending(l => l.MarketAnalyzerRank);

            return(View(model));
        }
Beispiel #4
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));
        }
Beispiel #5
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));
        }