Files
Common-VS2019/SacsStandardBase/Base/Core/SacsStateItem.cs
T
2021-05-05 15:36:28 +01:00

59 lines
1.7 KiB
C#

using Sarand.Net.Standard.Base.Utils;
using System;
namespace Sarand.Net.Standard.Base.Core
{
//=======================================================================
/// <summary>State Item interface.</summary>
public interface ISacsStateItem
{
bool HasErrorState ();
SacsErrorState ErrorState { get; }
String ErrorStateMessage { get; }
bool SetErrorState (String message);
void ClearErrorState ();
}
//=======================================================================
/// <summary>
/// State Item - allows business component to record and report error message.
/// </summary>
public class SacsStateItem : ISacsStateItem
{
//-------------------------------------------------------------------
// Data items.
//-------------------------------------------------------------------
// Protected construction - use derived classes.
protected SacsStateItem () { }
//-------------------------------------------------------------------
// Poperties.
public SacsErrorState ErrorState { get; private set; }
public bool HasErrorState ()
{
return ErrorState != null;
}
public String ErrorStateMessage
{
get { return (ErrorState != null ? ErrorState.Message : String.Empty); }
}
// Update properties.
public virtual bool SetErrorState (String message)
{
if (StringUtil.IsEmpty(StringUtil.EmptyOnNull(message).Trim()))
throw new NotSupportedException(GetType().Name + ".SetErrorState Blank error message");
this.ErrorState = new SacsErrorState(message);
return false;
}
public void ClearErrorState ()
{
ErrorState = null;
}
//-------------------------------------------------------------------
}
//=======================================================================
}