Esempio n. 1
0
        public void Rate()
        {
            //Logging - 1st refactor of S in Solid
            _logger.Log("Starting rate.");
            _logger.Log("Loading policy.");

            // load policy - open file policy.json
            //Policy source - 2nd refactor of S in Solid
            //string policyJson = PolicySource.GetPolicyFromSource();

            //Interface segragation change
            string policyJson = _policySource.GetPolicyFromSource();

            //encoding format - 3rd refactor of S in Solid
            //var policy = PolicySerializer.GetPolicyFromJsonString(policyJson);

            //Interface segragation change
            var policy = _policySerializer.GetPolicyFromString(policyJson);

            //Open/Closed Principle implementation
            //We created 3 classes each for one type insurance - auto,land,life - now it's easier to add more
            //We create an abstract class Rate which the 3 classes inherit from
            //With the factory method we return the correct instance each time
            //We create a flood policy to check the extensibility of the principle

            //var factory = new RaterFactory();
            //var rater = factory.Create(policy, this);

            //Interface segragation change
            var rater = _raterFactory.Create(policy);

            Rating = rater.Rate(policy);
            _logger.Log("Rating completed.");
        }
Esempio n. 2
0
        public void Rate()
        {
            StartLogging();

            // load policy - open file policy.json
            string policyJson = _policySource.GetPolicyFromSource();

            var policy = _policySerializer.GetPolicyFromJsonString(policyJson);


            var rater = _factory.Create(policy);

            rater.Rate(policy);


            FinishLogging();
        }
Esempio n. 3
0
        public void Rate()
        {
            Logger.Log("Starting rate.");
            Logger.Log("Loading policy.");

            string policyJson = PolicySource.GetPolicyFromSource();
            var    policy     = PolicySerializer.GetPolicyFromJsonString(policyJson);

            var factory = new RaterFactory();
            var rater   = factory.Create(policy, this);

            rater.Rate(policy);
            Logger.Log("Rating completed.");
        }
Esempio n. 4
0
        public void Rate()
        {
            _logger.Log("Starting rate.");

            _logger.Log("Loading policy.");

            string policyJson = _policySource.GetPolicyFromSource();

            var policy = _policySerializer.GetPolicyFromString(policyJson);

            var rater = _raterFactory.Create(policy);

            Rating = rater.Rate(policy);

            _logger.Log("Rating completed.");
        }
        public void Rate()
        {
            Logger.Log("Starting rate.");
            Logger.Log("Loading policy.");

            string policyJson = FilePolicySource.GetFilePolictyFromSource("policy.json");
            var    policy     = PolicyDeserialilzer.GetDeserializePolicy(policyJson);

            var factory = new RaterFactory();

            var rater = factory.Create(policy, this);

            rater?.Rate(policy);

            Logger.Log("Rating completed.");
        }
Esempio n. 6
0
        public void Rate()
        {
            // Logging - how is delegated
            Logger.Log("Starting rate.");

            Logger.Log("Loading policy.");

            // Persistence - how is delegated
            var policyJson = PolicySource.GetPolicyFromSource();

            // Encoding Format - how is delegated
            var policy = PolicySerializer.GetPolicyFromJsonString(policyJson);

            var factory = new RaterFactory();

            var rater = factory.Create(policy, this);

            rater?.Rate(policy);

            Logger.Log("Rating completed.");
        }