Files
Common-VS2019/SacsStandardBase/Base/Bus/SaErrorStateItem.cs
T
2025-01-09 16:31:16 +00:00

111 lines
2.9 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.
/// <summary>OK - No error state message.</summary>
public bool OK { get { return !HasErrorState(); } }
//-------------------------------------------------------------------
// Error State.
//-------------------------------------------------------------------
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);
}
//-------------------------------------------------------------------
}
//=======================================================================
}