private void AddResponseHandlers(RestClientSettings settings, IBuildContext context) { if (requestHandlers != null) { foreach (var handler in responseHandlers) { var requestHandler = handler.Instance as IRestResponseHandler; if (handler.Type != null) { requestHandler = context.Resolve(handler.Type) as IRestResponseHandler; } settings.ResponseHandlers.Add(requestHandler); } } }
public IBranchActivity Build(IBuildContext context) { if (Activities.Count == 0) { throw new InvalidOperationException("At least one activity must be defined in a branch"); } if (Strategy == null) { throw new InvalidOperationException(); } var activities = Activities.Select(x => x.Build(context)).ToList(); if (activities.Count == 1 && activities[0] is MergeActivity) { throw new InvalidOperationException(); } if (Factory) { if (StateFactory == null && StateFactoryType == null) { throw new InvalidOperationException(); } var stateFactory = StateFactory; if (stateFactory == null && context == null) { throw new NotSupportedException(); } if (stateFactory == null) { stateFactory = context.Resolve(StateFactoryType) as IStateFactory; } return(new BranchFactoryActivity(Name, Decision, activities, stateFactory)); } return(new BranchActivity(Name, Decision, Strategy, activities)); }
private void AddSerializers(RestClientSettings settings, IBuildContext context) { if (serializers != null) { settings.Serializers.Clear(); foreach (var handler in serializers) { var requestHandler = handler.Instance as IContentSerializer; if (handler.Type != null) { requestHandler = context.Resolve(handler.Type) as IContentSerializer; } settings.Serializers.Add(requestHandler); } } }
public IActivity Build(IBuildContext context) { if (!OptionSet) { throw new ActivityBuildException("No valid option was set for the build of an activity"); } try { IActivity activity; if (ActivityType != null) { if (context == null) { throw new ActivityResolveException(ActivityType, "The builder references a type that cannot be resolved outside a context"); } activity = (IActivity)context.Resolve(ActivityType); if (activity == null) { throw new ActivityResolveException(ActivityType, $"The type '{ActivityType}' is not a valid instance of {typeof(IActivity)}"); } } else if (ProxyActivity != null) { activity = ProxyActivity; } else if (ActivityBranchBuilder != null) { activity = ActivityBranchBuilder.Build(context); } else { activity = new Activity(Name, Decision, Execution); if (Metadata != null) { ((Activity)activity).SetMetadata(Metadata); } } if (Factory) { if (StateFactory == null && StateFactoryType == null) { throw new InvalidOperationException("Invalid setup for a state factory"); } var factory = StateFactory; if (factory == null && StateFactoryType != null) { factory = context.Resolve(StateFactoryType) as IStateFactory; } activity = new ActivityFactoryActivity(Name, Decision, activity, factory); } return(activity); } catch (ActivityBuildException) { throw; } catch (Exception ex) { throw new ActivityBuildException("Could not build the activity because of an error: see inner exception for details.", ex); } }