/// <summary> /// Calculates the required reason codes. /// </summary> /// <param name="request">The request.</param> /// <returns>The info codes response.</returns> private static CalculateRequiredReasonCodesServiceResponse CalculateRequiredReasonCodes(CalculateRequiredReasonCodesServiceRequest request) { CalculateRequiredReasonCodesServiceResponse response = ReasonCodesCalculator.CalculateRequiredReasonCodes(request); SetProductIdsForUpsell(request.RequestContext, response.RequiredReasonCodes); return(response); }
/// <summary> /// Throws exception if any requires reason code are missing. /// </summary> /// <param name="serviceResponse">The service response.</param> private static void ThrowIfRequiredReasonCodesMissing(CalculateRequiredReasonCodesServiceResponse serviceResponse) { if (serviceResponse.RequiredReasonCodes.Any()) { throw new MissingRequiredReasonCodeException( serviceResponse.RequiredReasonCodes, serviceResponse.TransactionRequiredReasonCodeIds, serviceResponse.ReasonCodeRequirements, DataValidationErrors.Microsoft_Dynamics_Commerce_Runtime_RequiredReasonCodesMissing, "One or more reason codes required for the transaction are missing."); } }