UIControllerDatabaseErrorOccurred Event
Namespace: Firefly.BoxAssembly: Firefly.Box (in Firefly.Box.dll) Version: debug-master-v:33791
public event DatabaseErrorEventHandler DatabaseErrorOccurred
Public Event DatabaseErrorOccurred As DatabaseErrorEventHandler
member DatabaseErrorOccurred : IEvent<DatabaseErrorEventHandler,
EventArgs>
Value
DatabaseErrorEventHandler When ever a database error happen, the following occurs:
the event flow of a database error
This example is in the form of Unit Tests. It references the NUnit framework. This framework can be downloaded from
www.NUnit.org. For more information about unit testing visit:
www.NUnit.org.
This example is based on test data. The code for the entities included in this test data can be found in the documentation of
Entityusing System;
using System.Collections.Generic;
using System.Text;
using Firefly.Box.Data.DataProvider;
using NUnit.Framework;
using Firefly.Box;
using Firefly.Box.Testing;
namespace TestFirefly.Box.Documentation
{
[TestFixture]
public class DatabaseErrorHandling
{
[Test]
public void DatabaseErrorHandlingEventSequence()
{
var jobs = new Pubs.Jobs();
jobs.InitializeWithTestData();
var bp = new BusinessProcess()
{
From = jobs,
Activity = Activities.Insert
};
string eventSequence = "";
bp.PreviewDatabaseError += e =>
{
eventSequence += "PreviewDatabaseError " + e.ErrorType + "\n";
e.HandlingStrategy = DatabaseErrorHandlingStrategy.Rollback;
};
bp.DatabaseErrorOccurred += e => eventSequence += "DatabaseErrorOccurred " + e.ErrorType + "\n";
var handler = bp.Handlers.AddDatabaseErrorHandler(DatabaseErrorType.DuplicateIndex);
handler.Invokes += e => eventSequence += "DatabaseErrorHandler " + e.ErrorType + "\n";
bp.ForFirstRow(() =>
{
jobs.Id.Value = 1;//Duplicate index error, because job with id 1 already exists
});
eventSequence.ShouldBe("PreviewDatabaseError DuplicateIndex\n" +
"DatabaseErrorHandler DuplicateIndex\n" +
"DatabaseErrorOccurred DuplicateIndex\n");
}
}
}