Print Page | Close Window

how to use 10 overload of VerifierEngine.Execute

Printed From: IdeaBlade
Category: DevForce
Forum Name: DevForce 2009
Forum Discription: For .NET 3.5
URL: http://www.ideablade.com/forum/forum_posts.asp?TID=1582
Printed Date: 21-Sep-2025 at 1:27pm


Topic: how to use 10 overload of VerifierEngine.Execute
Posted By: bahramchobin
Subject: how to use 10 overload of VerifierEngine.Execute
Date Posted: 11-Dec-2009 at 12:55pm
i do this code :

        List<Verifier> verifiers = new List<Verifier>();
        verifiers.Add(GetPersonelUniqVerifier());
        VerifierContext pVerifierContext=new VerifierContext(VerifierOnErrorMode.Continue, ?) ;//I put null
VerifierResultCollection results =
          mPersMgr.VerifierEngine.Execute(DetailInEdit, verifiers, pVerifierContext);//10 overload

then run and tis error :
{"Object reference not set to an instance of an object."}
how to use 10 overload of how to use 10 overload of VerifierEngine.Execute



    public static Verifier GetPersonelUniqVerifier()
    {
        // ToDo: localize description
        string description = "کد پرسنلی نباید تکراری باشد.";
        DelegateVerifier<KarkardDetailTB> v =
          new DelegateVerifier<KarkardDetailTB>(description, PersonelUniqVerifierCondition);
        v.AddTriggers(Descriptors.MazayaID.Name);
        v.ExecutionModes = VerifierExecutionModes.InstanceAndOnPostsetTriggers;
        return v;
    }
    public static VerifierResult PersonelUniqVerifierCondition(
      KarkardDetailTB pMjd, TriggerContext pTriggerContext, VerifierContext pVerifierContext)
    {

        if (pTriggerContext != null &&
            // We are not checking the proposed value because don't expect to call it preset
          pTriggerContext.Timing == TriggerTiming.Preset)
        {
            throw new VerifierException("BornBeforeHired verifier not implemented for Preset");
        }
        if (pMjd.PersonID == KarkardDetailTB.GetPersonelID(pMjd.PersonID.Value,pMjd.KarkardID.Value))
            if (pMjd.Id != KarkardDetailTB.GetID(pMjd.PersonID.Value,0, false, pMjd.KarkardID.Value, KarkardTypeEnumTB.Mabani().EnumValue))
                return new VerifierResult(false);
        return new VerifierResult(true);
    }




Replies:
Posted By: GregD
Date Posted: 11-Dec-2009 at 3:29pm
Which object is null in the statement that gives the error?


Posted By: bahramchobin
Date Posted: 11-Dec-2009 at 10:46pm

i use verifierEngine.Execute(1 overload ) and no error but i need 2 getverifier methode
in entity

    [VerifierProvider]
    public static IEnumerable<Verifier> GetVerifiers1(Object pVerifierProviderContext)
    {

        List<Verifier> verifiers = new List<Verifier>();

        verifiers.Add(Get1());
        verifiers.Add(Get2());
        return verifiers;
    }
    public static IEnumerable<Verifier> GetVerifiers2(Object pVerifierProviderContext)
    {

        List<Verifier> verifiers = new List<Verifier>();

        verifiers.Add(Get3());
        return verifiers;
    }



stack trace of error prior post :
System.NullReferenceException was unhandled
  Message="Object reference not set to an instance of an object."
  Source="IdeaBlade.Verification"
  StackTrace:
       at IdeaBlade.Verification.Verifier.Execute(Object pItemToVerify, TriggerContext pTriggerContext, VerifierContext pVerifierContext)
       at IdeaBlade.Verification.VerifierEngine.ExecuteCollection(IEnumerable`1 pVerifiers, VerifierExecutionModes pModes, Object pItemToVerify, TriggerContext pTriggerContext, VerifierContext pVerifierContext)
       at IdeaBlade.Verification.VerifierEngine.Execute(Object pInstance, IEnumerable`1 pVerifiers, VerifierContext pVerifierContext)
       at Salary.frmKarkardMabani.DisplayVerificationResultsForCurrentMaliatJadvalDetail(KarkardDetailTB DetailInEdit) in E:\samansystem\projects\SmallBussinesAccounting\HumanResource\Salary\frmKarkardMabani.cs:line 764
       at Salary.frmKarkardMabani.dgvList_CellValuePushed(Object sender, DataGridViewCellValueEventArgs e) in E:\samansystem\projects\SmallBussinesAccounting\HumanResource\Salary\frmKarkardMabani.cs:line 614
       at System.Windows.Forms.DataGridView.OnCellValuePushed(DataGridViewCellValueEventArgs e)
       at System.Windows.Forms.DataGridView.OnCellValuePushed(Int32 columnIndex, Int32 rowIndex, Object value)
       at System.Windows.Forms.DataGridViewCell.SetValue(Int32 rowIndex, Object value)
       at System.Windows.Forms.DataGridView.PushFormattedValue(DataGridViewCell& dataGridViewCurrentCell, Object formattedValue, Exception& exception)
       at System.Windows.Forms.DataGridView.CommitEdit(DataGridViewCell& dataGridViewCurrentCell, DataGridViewDataErrorContexts context, DataGridViewValidateCellInternal validateCell, Boolean fireCellLeave, Boolean fireCellEnter, Boolean fireRowLeave, Boolean fireRowEnter, Boolean fireLeave)
       at System.Windows.Forms.DataGridView.CommitEdit(DataGridViewDataErrorContexts context, Boolean forCurrentCellChange, Boolean forCurrentRowChange)
       at System.Windows.Forms.DataGridView.OnCellMouseDown(HitTestInfo hti, Boolean isShiftDown, Boolean isControlDown)
       at System.Windows.Forms.DataGridView.OnCellMouseDown(DataGridViewCellMouseEventArgs e)
       at System.Windows.Forms.DataGridView.OnMouseDown(MouseEventArgs e)
       at System.Windows.Forms.Control.WmMouseDown(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.DataGridView.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
       at System.Windows.Forms.Form.ShowDialog()
       at Salary.frmKarkardList.tsmiEdit_Click(Object sender, EventArgs e) in E:\samansystem\projects\SmallBussinesAccounting\HumanResource\Salary\frmKarkardList.cs:line 160
       at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
       at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)
       at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
       at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
       at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
       at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
       at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
       at System.Windows.Forms.ToolStrip.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
       at System.Windows.Forms.Form.ShowDialog()
       at HumanResource.frmMain.tsmiKarkard_Click(Object sender, EventArgs e) in E:\samansystem\projects\SmallBussinesAccounting\HumanResource\HumanResource\frmMain.cs:line 61
       at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
       at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
       at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
       at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
       at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
       at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
       at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
       at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
       at System.Windows.Forms.ToolStrip.WndProc(Message& m)
       at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.Run(Form mainForm)
       at HumanResource.Program.Main() in E:\samansystem\projects\SmallBussinesAccounting\HumanResource\HumanResource\Program.cs:line 23
       at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
       at System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel)
       at System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly()
       at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
       at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException:








Posted By: bahramchobin
Date Posted: 12-Dec-2009 at 2:35am
hi ,  thx GregD  i solve this problem with  this code:



        mPersMgr.VerifierEngine.AddVerifier(get1());
        mPersMgr.VerifierEngine.AddVerifier(get2());
        if(condition)
           mPersMgr.VerifierEngine.AddVerifier(get3());
 
        VerifierResultCollection results =
          mPersMgr.VerifierEngine.Execute(DetailInEdit);//1 overload


member_profile.asp?PF=4 -
Members Profile
pm_new_message_form.asp?name=GregD -
Send Private Message
search_form.asp?USR=GregD -
Find Members Posts
pm_buddy_list.asp?name=GregD -
Add to Buddy List



Print Page | Close Window