Beispiel #1
0
        public List <string> GetCategories()
        {
            IRisk risk = null;

            List <string> tradeCategories = new List <string>();

            List <IRisk> risks = new List <IRisk> {
                RiskFactory.Create(TypeRisk.LowRisk),
                RiskFactory.Create(TypeRisk.MediumRisk),
                RiskFactory.Create(TypeRisk.HighRisk)
            };

            foreach (var trade in _portfolio)
            {
                foreach (IRisk r in risks)
                {
                    risk = r;

                    if (r.CalculateRisk(trade))
                    {
                        break;
                    }
                }

                if (risk != null)
                {
                    tradeCategories.Add(risk.Type);
                }
            }

            return(tradeCategories);
        }
Beispiel #2
0
        public Projection Get([FromQuery] decimal initialInvestment, [FromQuery] decimal monthlyInvestment, [FromQuery] decimal targetValue, [FromQuery] int years, [FromQuery] string riskLevel = "low")
        {
            var risk       = ConvertToRiskLevels(riskLevel);
            var calculator = RiskFactory.CreateInstance(risk, new InputValidator());

            return(calculator.CalculateGrowth(initialInvestment, monthlyInvestment, targetValue, years));
        }
        public void GivenIWantToCalculate(string riskType)
        {
            const string expectedLow    = "low";
            const string expectedMedium = "medium";
            const string expectedHigh   = "high";
            var          level          = (riskType.ToLower()) switch
            {
                expectedLow => RiskLevels.Low,
                expectedMedium => RiskLevels.Medium,
                expectedHigh => RiskLevels.High,
                _ => throw new ArgumentOutOfRangeException(),
            };

            _growthRisk = RiskFactory.CreateInstance(level, new InputValidator());
        }
Beispiel #4
0
        public string GetCategory(double valor, string clientSector)
        {
            var risk = RiskFactory.GetRiskDefination(valor, clientSector);

            return(risk.GetRisk());
        }
Beispiel #5
0
        public void CreateInstanceCreatesInstanceOfLowRiskWhenLowIsProvided()
        {
            var lowRisk = RiskFactory.CreateInstance(Models.RiskLevels.Low, new FakeValidator());

            Assert.IsInstanceOf <LowRisk>(lowRisk);
        }
Beispiel #6
0
        public void CreateInstanceCreatesInstanceOfHighRiskWhenHighIsProvided()
        {
            var highRisk = RiskFactory.CreateInstance(Models.RiskLevels.High, new FakeValidator());

            Assert.IsInstanceOf <HighRisk>(highRisk);
        }
Beispiel #7
0
        public void CreateInstanceCreatesInstanceOfMediumRiskWhenMediumIsProvided()
        {
            var mediumRisk = RiskFactory.CreateInstance(Models.RiskLevels.Medium, new FakeValidator());

            Assert.IsInstanceOf <MediumRisk>(mediumRisk);
        }