private Interaction ApplyRequestFilters(Interaction interaction)
        {
            var applier = new RequestFilterApplier();

            _filters.ForEach(filter => interaction = applier.Apply(filter, interaction));

            return(interaction);
        }
        private Models.Pact ApplyRequestFiltersOn(Models.Pact pact)
        {
            var updated = new Models.Pact();

            updated._links = pact._links?.Clone();

            updated.Consumer = new Party()
            {
                Name = pact.Consumer?.Name
            };
            updated.Metadata = new PactMetadata()
            {
                PactSpecification = new Specification()
                {
                    Version = pact.Metadata?.PactSpecification?.Version
                }
            };
            updated.Provider = new Party()
            {
                Name = pact.Provider?.Name
            };
            updated.Interactions = new List <Interaction>();

            var applier = new RequestFilterApplier();

            foreach (var pactInteraction in pact.Interactions)
            {
                var interaction = pactInteraction;

                foreach (var filter in _filters)
                {
                    interaction = applier.Apply(filter, interaction);
                }

                updated.Interactions.Add(interaction);
            }

            return(updated);
        }