public async Task <IActionResult> Index(int id)
        {
            var vm       = new BusinessIndexVM();
            var business = await _businessHelper.UpdateGainsSinceLastCheckIn(id);

            business.Owner = await _entrepreneurHelper.UpdateEntrepreneurScore(id);

            vm.Business            = business;
            vm.CurrentEntrepreneur = await GetCurrentEntrepreneur();

            vm.CurrentBusinessInvestments = await _businessHelper.GetInvestmentsCompanyHasMade(id);

            var currentEntrepreneursInvestmentsInBusiness = await _investmentHelper.GetInvestmentsBusinessHasMadeInAnotherBusinessAsync(vm.CurrentEntrepreneur.BusinessId, business.Id);

            vm.HasCurrentEntrepreneurInvestedInBusiness = currentEntrepreneursInvestmentsInBusiness?.Count > 0;
            if (vm.HasCurrentEntrepreneurInvestedInBusiness)
            {
                vm.CurrentEntrepreneurInvestments = currentEntrepreneursInvestmentsInBusiness.ToList();
                foreach (var item in vm.CurrentEntrepreneurInvestments)
                {
                    vm.TotalInvestedAmount += item.Investment.InvestmentAmount;
                    vm.InvestedProfits     += InvestmentHelper.CalculateInvestmentProfit(item);
                }
            }
            vm.CurrentBusinessEspionages = await _businessHelper.GetEspionagesCompanyHasComitted(id);

            vm.EspionagePercentage = CalculateEspionagePercentage(business, vm.CurrentEntrepreneur.Business);
            if (vm.Business == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            return(View(vm));
        }
Esempio n. 2
0
        public async Task <IActionResult> Index(int id)
        {
            var vm       = new BusinessIndexVM();
            var business = await _businessHelper.UpdateGainsSinceLastCheckIn(id);

            vm.Business            = business;
            vm.CurrentEntrepreneur = await GetCurrentEntrepreneur();

            vm.HasCurrentEntrepreneurInvestedInBusiness = business.Investments.Any(s => s.InvestingBusinessId == vm.CurrentEntrepreneur.Business.Id && s.InvestmentType != InvestmentType.Espionage);
            if (vm.HasCurrentEntrepreneurInvestedInBusiness)
            {
                var investments = business.Investments
                                  .Where(s => s.InvestingBusinessId == vm.CurrentEntrepreneur.Business.Id)
                                  .Where(s => s.InvestmentType == InvestmentType.Investment)
                                  .ToList();
                vm.Investments = investments;
                foreach (var item in investments)
                {
                    vm.TotalInvestedAmount += item.InvestmentAmount;
                    vm.InvestedProfits     += InvestmentHelper.CalculateInvestmentProfit(item);
                }
            }
            if (vm.Business == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            return(View(vm));
        }
 public BusinessController(ApplicationDbContext context, ILogger <BusinessController> logger)
 {
     _context            = context;
     _logger             = logger;
     _businessHelper     = new BusinessHelper(context, _logger);
     _entrepreneurHelper = new EntrepreneurHelper(context, _logger);
     _applicationHelper  = new ApplicationHelper(_logger);
     _investmentHelper   = new InvestmentHelper(_context, _logger);
 }
        public void GetInvestmentDetailsForInvestmentId()
        {
            CreateFakeInvestmentContext();

            InvestmentController controller = new InvestmentController(db);

            // get the investments for userId = 1
            InvestmentDetail2 investmentDetails = controller.GetInvestmentDetail(1);

            // Asserts
            Assert.IsNotNull(investmentDetails);
            Assert.AreEqual(5, investmentDetails.Shares);
            Assert.AreEqual(14, investmentDetails.CostBasisPerShare);
            Assert.AreEqual(55, investmentDetails.CurrentPrice);
            Assert.AreEqual(InvestmentHelper.GetCurrentValue(investmentDetails.Shares, investmentDetails.CurrentPrice), investmentDetails.CurrentValue);
            Assert.AreEqual(InvestmentHelper.GetTerm(investmentDetails.PurchaseDate), investmentDetails.Term);
            Assert.AreEqual(InvestmentHelper.GetNetGainLoss(investmentDetails.CurrentValue, investmentDetails.Shares, investmentDetails.CostBasisPerShare), investmentDetails.NetGainLoss);
        }
Esempio n. 5
0
        public ModelPortfolio()
            : base(true)
        {
            oSearch = new Search(oItemCache, true, SearchHelper.CreateQuery(Constants.Investments.Indexes.Fields.Template, Sitecore.Configuration.Settings.GetSetting(Settings.Pages.Investments.Research.RemoveDocumentsFromTemplate).Replace("}", "\\}").Replace("{", "\\{").Replace("|", " ").Replace("-", ""), false));
            oSearch.KeywordFields = new string[] { Constants.Investments.Indexes.Fields.Title, Constants.Investments.Indexes.Fields.Custodian, Constants.Investments.Indexes.Fields.Strategist, Constants.Investments.Indexes.Fields.SolutionType };
            //force to call the static constructor before enter to the thread.
            object scustodians = ModelPortfolioResult.CustodiansList;

            //load the filters list
            oFilters.Add(oCustodians     = new Filter(FilterGroup.General, "Custodians", SHORT_CODE_CUSTODIANS, Constants.Investments.Indexes.Fields.CustodianId, "/sitecore/content/Meta-Data/Security/Custodians/*", oItem => oItem.DisplayName, oItem => oItem.GetText("Code")));
            oFilters.Add(oSolution_Types = new Filter(FilterGroup.General, "Solution Type", SHORT_CODE_SOLUTION_TYPE, Constants.Investments.Indexes.Fields.SolutionTypeId, "/sitecore/content/Meta-Data/Solution Types/*", oItem => oItem.DisplayName, oItem => oItem.GetText("Code")));

            //Get Dynamic documents
            HttpContext oContext = HttpContext.Current;

            oExtrernaldata = new Task <List <ModelPortfolioResult> >(() =>
            {
                string sSetting      = Sitecore.Configuration.Settings.GetSetting(Settings.Pages.Investments.ModelPortfolio.AllowedCustodiansForDynamicDocuments);
                HttpContext.Current  = oContext;
                string[] sCustodians = string.IsNullOrWhiteSpace(sSetting) ? oCustodians.Options.Select(oCustodian => oCustodian.Code).ToArray() : sSetting.Split(',');
                sSetting             = Sitecore.Configuration.Settings.GetSetting(Settings.Pages.Investments.ModelPortfolio.AllowedSolutionsForDynamicDocuments);
                //change request 16670
                string[] sSolution_Type = string.IsNullOrWhiteSpace(sSetting) ? oSolution_Types.Options.Select(oCustodian => oCustodian.Code).ToArray() : sSetting.Split(',');
                //oSolution_Types.Options.Select(oSolution_Type => oSolution_Type.Code).ToArray();
                return(InvestmentHelper.GetModelPortfolioDocuments(sCustodians, sSolution_Type));

                /*List<ModelPortfolioResult> result = new List<ModelPortfolioResult>();
                 * for (int i=0;i<10 ;i++)
                 *  result.Add(new ModelPortfolioResult(string.Format("test {0}", i), "", "GSAM", DateTime.Today.ToShortDateString(), "FID", "DS"));
                 * return result;*/
            });


            oExtrernaldata.Start();
            //Check defaul values for solution Types
            oSolution_Types.SetDefaultValues(Sitecore.Configuration.Settings.GetSetting(Settings.Pages.ModelPorfolio.SolutionTypesChecked, ""));
            oCustodians.SetDefaultValues(Sitecore.Configuration.Settings.GetSetting(Settings.Pages.ModelPorfolio.CustodiansChecked, ""));

            //remove date
            Months = -1;
            bAutoUpdateFilterAvailability = false;

            UpdateFilterAvailability(true);
        }
        public InvestmentDetail2 GetInvestmentDetail(int investmentId)
        {
            InvestmentDetail investmentDetail = db.InvestmentDetails.Where(x => x.InvestmentId == investmentId).FirstOrDefault();

            if (investmentDetail == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }

            InvestmentDetail2 returnDetail = new InvestmentDetail2();

            returnDetail.Id                = investmentDetail.Id;
            returnDetail.InvestmentId      = investmentDetail.InvestmentId;
            returnDetail.CostBasisPerShare = investmentDetail.CostBasisPerShare;
            returnDetail.CurrentPrice      = investmentDetail.CurrentPrice;
            returnDetail.Shares            = investmentDetail.Shares;
            returnDetail.PurchaseDate      = investmentDetail.PurchaseDate;
            returnDetail.CurrentValue      = InvestmentHelper.GetCurrentValue(returnDetail.Shares, returnDetail.CurrentPrice);
            returnDetail.Term              = InvestmentHelper.GetTerm(returnDetail.PurchaseDate);
            returnDetail.NetGainLoss       = InvestmentHelper.GetNetGainLoss(returnDetail.CurrentValue, returnDetail.Shares, returnDetail.CostBasisPerShare);

            return(returnDetail);
        }
        public InvestmentsSearchBase Research(string sType)
        {
            SetNoChaching();

            return((InvestmentsSearchBase)InvestmentHelper.GetProvider(sType));
        }