106 lines
2.8 KiB
C#
106 lines
2.8 KiB
C#
using System;
|
|
using Sarand.Net.Standard.Base.Core;
|
|
using Sarand.Net.Standard.Base.Utils;
|
|
|
|
namespace Sarand.Net.Standard.Base.Bus
|
|
{
|
|
//=======================================================================
|
|
public abstract class SaErrorStateItem : SacsDisposable, ISacsStateItem
|
|
{
|
|
//-------------------------------------------------------------------
|
|
// Definitions.
|
|
public enum ErrorMessage
|
|
{
|
|
// Item validation.
|
|
ItemNotSpecified,
|
|
ValiditemId,
|
|
InvalidItemId,
|
|
// Common properties.
|
|
InvalidStatus,
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Data members.
|
|
|
|
//-------------------------------------------------------------------
|
|
// Static initialisation.
|
|
static SaErrorStateItem ()
|
|
{
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Construction.
|
|
protected SaErrorStateItem ()
|
|
{
|
|
}
|
|
protected override void Dispose (bool disposing)
|
|
{
|
|
if (disposing)
|
|
{
|
|
}
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Properties.
|
|
|
|
//-------------------------------------------------------------------
|
|
// E r r o r S t a t e
|
|
//-------------------------------------------------------------------
|
|
private SacsErrorState errorState = null;
|
|
public bool HasErrorState ()
|
|
{
|
|
return errorState != null;
|
|
}
|
|
public SacsErrorState ErrorState
|
|
{
|
|
get { return errorState; }
|
|
}
|
|
public String ErrorStateMessage
|
|
{
|
|
get { return (errorState != null ? errorState.Message : String.Empty); }
|
|
}
|
|
/// <summary>
|
|
/// Record the error state message.
|
|
/// <para>Blank message does not set the error state - leaves previous state intact.</para>
|
|
/// <para>Return value is fale unless the message is blank.</para>
|
|
/// </summary>
|
|
public bool SetErrorState (String message)
|
|
{
|
|
if (StringUtil.IsEmpty(message)) return true;
|
|
this.errorState = new SacsErrorState(message);
|
|
return false;
|
|
}
|
|
/// <summary>Clear the error state.</summary>
|
|
public void ClearErrorState ()
|
|
{
|
|
errorState = null;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Error state population.
|
|
protected bool SetErrorState (ErrorMessage errorMessage)
|
|
{
|
|
String message = errorMessage.ToString();
|
|
switch (errorMessage)
|
|
{
|
|
case ErrorMessage.ItemNotSpecified:
|
|
message = "Item not specified.";
|
|
break;
|
|
case ErrorMessage.ValiditemId:
|
|
message = "Item has a valid id.";
|
|
break;
|
|
case ErrorMessage.InvalidItemId:
|
|
message = "Invalid item id.";
|
|
break;
|
|
case ErrorMessage.InvalidStatus:
|
|
message = "Invalid status.";
|
|
break;
|
|
}
|
|
return SetErrorState(message);
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|