Delete all transaction warning

Delete all transaction warning

sonicer
Collaborator Collaborator
495 Views
1 Reply
Message 1 of 2

Delete all transaction warning

sonicer
Collaborator
Collaborator

I want delete all warning in transaction.

I have this ...It works, but if I add other failure in to the if ( ...then it doesn't work ...show it more warning then before

 

I need delete warnings.

 

        public class PlintePreprocessor : IFailuresPreprocessor
        {
            public FailureProcessingResult PreprocessFailures(FailuresAccessor failuresAccessor)
            {
                // Inside event handler, get all warnings
                IList<FailureMessageAccessor> failList = failuresAccessor.GetFailureMessages();
                foreach (FailureMessageAccessor failure in failList)
                { 
                    FailureDefinitionId failId = failure.GetFailureDefinitionId();
 
                   if (failId == BuiltInFailures.OverlapFailures.WallsOverlap || failId == BuiltInFailures.JoinElementsFailures.JoiningDisjoint || failId == BuiltInFailures.JoinElementsFailures.JoiningDisjointWarn)                       
                    {
                        failuresAccessor.DeleteWarning(failure);
                    } 
                                    
                }
                return FailureProcessingResult.Continue;
            }
        }
0 Likes
496 Views
1 Reply
Reply (1)
Message 2 of 2

Anonymous
Not applicable

Hi, can you try this?

private void OnFailuresProcessing(object sender, FailuresProcessingEventArgs e)
{
     FailuresAccessor failuresAccessor = e.GetFailuresAccessor();
     failuresAccessor.DeleteAllWarnings();
     IList<FailureMessageAccessor> fmas = failuresAccessor.GetFailureMessages();
     if (fmas.Count == 0)
     {
       e.SetProcessingResult(FailureProcessingResult.Continue);
       return;
     }
     foreach (FailureMessageAccessor fma in fmas)
     {
       try
         {
           failuresAccessor.ResolveFailure(fma);
         }
       catch { }
     }
     e.SetProcessingResult(FailureProcessingResult.ProceedWithCommit);
     return;
}

  

0 Likes