public MethodCallBroker(IRequestBuilder requestBuilder, IRandomService service = null, IBeforeRequestCommandFactory beforeRequestCommandFactory = null, IResponseHandlerFactory responseHandlerFactory = null) { _requestBuilder = requestBuilder; _service = service ?? new RandomOrgApiService(); _beforeRequestCommandFactory = beforeRequestCommandFactory; _responseHandlerFactory = responseHandlerFactory; }
/// <summary> /// Constructor /// </summary> /// <param name="advisoryDelayHandler"> /// Class which handles the apprioriate delay before the request is called. /// It is required that this class be passed into the method because the same instance of the <see cref="AdvisoryDelayHandler"/> must be passed in on every request. /// </param> /// <param name="randomService"><see cref="IRandomService"/> to use to get random values. Defaults to <see cref="RandomOrgApiService"/></param> public UuidBasicMethod(AdvisoryDelayHandler advisoryDelayHandler, IRandomService randomService = null) { RandomService = randomService ?? new RandomOrgApiService(); RequestBuilder = new JsonRequestBuilder(new UuidJsonRequestBuilder()); BeforeRequestCommandFactory = new BeforeRequestCommandFactory(advisoryDelayHandler); // We need to keep this separate so we can retrieve the list of values that are returned from to the caller ResponseParser = new JsonResponseParserFactory(new UuidResponseParser()); ResponseHandlerFactory = new ResponseHandlerFactory( new ErrorHandlerThrowException(new ErrorParser()), advisoryDelayHandler, new VerifyIdResponseHandler(), ResponseParser ); }