public void Rate() { _logger.Log("Starting rate."); _logger.Log("Loading policy."); string policyString = _policySource.GetPolicyFromSource(); var policy = _policySerializer.GetPolicyFromJsonString(policyString); 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 policyString = _policySource.GetPolicyFromSource(); var policy = _policySerializer.GetPolicyFromString(policyString); //var rater = Context.CreateRaterForPolicy(policy, Context); var rater = _raterFactory.Create(policy); Rating = rater.Rate(policy); _logger.Log("Rating completed."); #region old code before ISP //Logger.Log("Starting rate."); //Logger.Log("Loading policy."); //// load policy - open file policy.json //string policyJson = PolicySource.GetPolicyFromSource(); //var policy = PolicySerializer.GetPolicyFromJsonString(policyJson); //var factory = new RaterFactory(); //var rater = factory.Create(policy, this); //// first step: original behavior printed Unknown policy type when policy type was unknown ////rater?.Rate(policy); //// second step: this null check breaks LSP ////if (rater == null) ////{ //// Logger.Log("Unknown policy type"); ////} ////else ////{ //// rater.Rate(policy); ////} //// third step: all policies are processed the same way //rater.Rate(policy); //Logger.Log("Rating completed."); #endregion }
public void Rate() { Logger.Log("Starting rate."); Logger.Log("Loading policy."); var policyJson = PolicySource.GetPolicyFromSource(); var policy = PolicySerializer.GetPolicyFromJsonString(policyJson); var factory = new RaterFactory(); var rater = factory.Create(this, policy); rater?.Rate(policy); Logger.Log("Rating completed."); }