FailureProcessingResult IFailuresPreprocessor.PreprocessFailures(FailuresAccessor failuresAccessor)
        {
            if (!failuresAccessor.IsTransactionBeingCommitted())
            {
                return(FailureProcessingResult.Continue);
            }

            if (failuresAccessor.GetSeverity() >= FailureSeverity.DocumentCorruption)
            {
                return(FailureProcessingResult.ProceedWithRollBack);
            }

            if (failuresAccessor.GetSeverity() >= FailureSeverity.Error)
            {
                // Handled failures in order
                {
                    var failureDefinitionIdsToFix = FailureDefinitionIdsToFix;
                    if (failureDefinitionIdsToFix != null)
                    {
                        var result = FixFailures(failuresAccessor, failureDefinitionIdsToFix);
                        if (result != FailureProcessingResult.Continue)
                        {
                            return(result);
                        }
                    }
                }

                // Unhandled failures in incomming order
                {
                    var failureDefinitionIdsToFix = failuresAccessor.GetFailureMessages().GroupBy(x => x.GetFailureDefinitionId()).Select(x => x.Key);
                    var result = FixFailures(failuresAccessor, failureDefinitionIdsToFix);
                    if (result != FailureProcessingResult.Continue)
                    {
                        return(result);
                    }
                }
            }

            if (failuresAccessor.GetSeverity() >= FailureSeverity.Warning)
            {
                // Unsolved failures or warnings
                foreach (var error in failuresAccessor.GetFailureMessages().OrderBy(error => error.GetSeverity()))
                {
                    AddRuntimeMessage(error, false);
                }

                failuresAccessor.DeleteAllWarnings();
            }

            return(FailureProcessingResult.Continue);
        }
Exemple #2
0
        public FailureProcessingResult ProcessFailures(FailuresAccessor data)
        {
            switch (data.GetSeverity())
            {
            case FailureSeverity.Warning:
                data.ResolveFailures(data.GetFailureMessages());
                return(FailureProcessingResult.ProceedWithCommit);

            default:
                return(FailureProcessingResult.ProceedWithRollBack);
            }
        }
Exemple #3
0
        public FailureProcessingResult PreprocessFailures(
            FailuresAccessor a)
        {
            IList <FailureMessageAccessor> failures
                = a.GetFailureMessages();

            foreach (FailureMessageAccessor f in failures)
            {
                FailureSeverity fseverity = a.GetSeverity();

                if (fseverity == FailureSeverity.Warning)
                {
                    a.DeleteWarning(f);
                }
            }
            return(FailureProcessingResult.Continue);
        }
Exemple #4
0
            public FailureProcessingResult PreprocessFailures(FailuresAccessor failuresAccessor)
            {
                var severity = failuresAccessor.GetSeverity();

                if (severity == FailureSeverity.Warning)
                {
                    foreach (var warning in failuresAccessor.GetFailureMessages(FailureSeverity.Warning))
                    {
                        RhinoApp.WriteLine(warning.GetDescriptionText());
                    }

                    failuresAccessor.DeleteAllWarnings();
                    return(FailureProcessingResult.ProceedWithCommit);
                }

                return(FailureProcessingResult.Continue);
            }
Exemple #5
0
        FailureProcessingResult PreprocessFailures(FailuresAccessor a)
        {
            IList<FailureMessageAccessor> failures = a.GetFailureMessages();

            foreach (FailureMessageAccessor f in failures)
            {
                FailureSeverity fseverity = a.GetSeverity();

                if (fseverity == FailureSeverity.Warning)
                {
                    a.DeleteWarning(f);
                }
                else
                {
                    a.ResolveFailure(f);
                    return FailureProcessingResult.ProceedWithCommit;
                }
            }
            return FailureProcessingResult.Continue;
        }
Exemple #6
0
        public FailureProcessingResult PreprocessFailures(FailuresAccessor a)
        {
            IList <FailureMessageAccessor> failures = a.GetFailureMessages();

            foreach (FailureMessageAccessor f in failures)
            {
                FailureDefinitionId id = f.GetFailureDefinitionId();

                FailureSeverity failureSeverity = a.GetSeverity();

                if (failureSeverity == FailureSeverity.Warning)
                {
                    a.DeleteWarning(f);
                }
                else
                {
                    return(FailureProcessingResult.ProceedWithRollBack);
                }
            }
            return(FailureProcessingResult.Continue);
        }
Exemple #7
0
        private void CheckWarnings(object sender, FailuresProcessingEventArgs e)
        {
            FailuresAccessor fa = e.GetFailuresAccessor();

            IList <FailureMessageAccessor> failList = fa.GetFailureMessages(); // Inside event handler, get all warnings

            foreach (FailureMessageAccessor failure in failList)
            {
                // check FailureDefinitionIds against ones that you want to dismiss,
                FailureDefinitionId failID = failure.GetFailureDefinitionId();
                var failureSeverity        = fa.GetSeverity();
                if (failureSeverity == FailureSeverity.Warning)
                {
                    fa.DeleteWarning(failure);
                }
//        // prevent Revit from showing Unenclosed room warnings
//        if (failID == BuiltInFailures.RoomFailures.RoomNotEnclosed)
//        {
//          fa.DeleteWarning(failure);
//        }
            }
        }
        FailureProcessingResult PreprocessFailures(
            FailuresAccessor a)
        {
            IList<FailureMessageAccessor> failures
              = a.GetFailureMessages();

              foreach( FailureMessageAccessor f in failures )
              {
            FailureSeverity fseverity = a.GetSeverity();

            if( fseverity == FailureSeverity.Warning )
            {
              a.DeleteWarning( f );
            }
            else
            {
              a.ResolveFailure( f );
              return FailureProcessingResult.ProceedWithCommit;
            }
              }
              return FailureProcessingResult.Continue;
        }