private void tryCreateBuildPlan(Type pluginType, InstanceRef instanceRef, Policies policies,
                                 ProfileReport report)
 {
     try
     {
         instanceRef.Instance.ResolveBuildPlan(pluginType, policies);
     }
     catch (StructureMapException e)
     {
         _buildPlanFailureIds.Add(instanceRef.Instance.Id);
         e.Instances.Fill(instanceRef.Instance.Id);
         report.AddError(pluginType, instanceRef.Instance, e);
     }
 }
Пример #2
0
        private void tryBuildInstance(Type pluginType, Instance instance, IPipelineGraph pipeline, ProfileReport report)
        {
            var session = new BuildSession(pipeline, instance.Name);

            try
            {
                var @object = session.FindObject(pluginType, instance);
                validate(pluginType, instance, @object, report);
            }
            catch (StructureMapException ex)
            {
                ex.Instances.Each(x => _buildPlanFailureIds.Fill(x));

                report.AddError(pluginType, instance, ex);
            }
        }
Пример #3
0
        public void Validate(IPipelineGraph pipeline, Policies policies)
        {
            var report = new ProfileReport(pipeline);
            _reports.Add(report);

            var closedTypes = pipeline.ToModel().PluginTypes.Where(x => !x.PluginType.IsOpenGeneric()).ToArray();

            closedTypes.Each(
                family => {
                    family.Instances.Each(i => { tryCreateBuildPlan(family.PluginType, i, policies, report); });
                });

            closedTypes.Each(
                family => {
                    family.Instances.Where(x => !_buildPlanFailureIds.Contains(x.Instance.Id))
                        .Each(i => { tryBuildInstance(family.PluginType, i.Instance, pipeline, report); });
                });
        }
        public void Validate(IPipelineGraph pipeline, Policies policies)
        {
            var report = new ProfileReport(pipeline);

            _reports.Add(report);

            var closedTypes = pipeline.ToModel().PluginTypes.Where(x => !x.PluginType.IsOpenGeneric()).ToArray();

            closedTypes.Each(
                family => {
                family.Instances.Each(i => { tryCreateBuildPlan(family.PluginType, i, policies, report); });
            });

            closedTypes.Each(
                family => {
                family.Instances.Where(x => !_buildPlanFailureIds.Contains(x.Instance.Id))
                .Each(i => { tryBuildInstance(family.PluginType, i.Instance, pipeline, report); });
            });
        }
Пример #5
0
 private void tryCreateBuildPlan(Type pluginType, InstanceRef instanceRef, Policies policies,
     ProfileReport report)
 {
     try
     {
         instanceRef.Instance.ResolveBuildPlan(pluginType, policies);
     }
     catch (StructureMapException e)
     {
         _buildPlanFailureIds.Add(instanceRef.Instance.Id);
         e.Instances.Fill(instanceRef.Instance.Id);
         report.AddError(pluginType, instanceRef.Instance, e);
     }
 }
Пример #6
0
        private void validate(Type pluginType, Instance instance, object builtObject, ProfileReport report)
        {
            if (builtObject == null) return;

            var methods = ValidationMethodAttribute.GetValidationMethods(builtObject.GetType());
            foreach (var method in methods)
            {
                try
                {
                    method.Invoke(builtObject, new object[0]);
                }
                catch (Exception ex)
                {
                    var error = new ValidationError(pluginType, instance, ex.InnerException, method);
                    report.AddValidationError(error);
                }
            }
        }
        private void tryBuildInstance(Type pluginType, Instance instance, IPipelineGraph pipeline, ProfileReport report)
        {
            var session = new BuildSession(pipeline, instance.Name);

            try
            {
                var @object = session.FindObject(pluginType, instance);
                validate(pluginType, instance, @object, report);
            }
            catch (StructureMapException ex)
            {
                ex.Instances.Each(x => _buildPlanFailureIds.Fill(x));

                report.AddError(pluginType, instance, ex);
            }
        }
        private void validate(Type pluginType, Instance instance, object builtObject, ProfileReport report)
        {
            if (builtObject == null)
            {
                return;
            }

            var methods = ValidationMethodAttribute.GetValidationMethods(builtObject.GetType());

            foreach (var method in methods)
            {
                try
                {
                    method.Invoke(builtObject, new object[0]);
                }
                catch (Exception ex)
                {
                    var error = new ValidationError(pluginType, instance, ex.InnerException, method);
                    report.AddValidationError(error);
                }
            }
        }