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)); }
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); }
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)); }