Files
Common-VS2019/SacsMobileMaui/Maui/Logic/SamDateValueState.cs
T

45 lines
864 B
C#

using Sarand.Net.Standard.Base.Utils;
using System;
namespace Sarand.Net.Mobile.Maui.Logic
{
// --- Date value state ---
public sealed class SamDateValueState
{
private DateTime date = DateTime.MinValue;
private bool invalid = true;
public DateTime Date { get { return invalid ? DateTime.MinValue : date; } }
public bool IsInvalid { get { return invalid; } }
public bool SetDate(DateTime value)
{
if (Date.Equals(value)) return false;
if (DateUtil.IsValid(value))
{
date = value;
invalid = false;
}
else
{
date = DateTime.MinValue;
invalid = true;
}
return true;
}
public bool TryInvalidate(out DateTime previousDate)
{
if (invalid)
{
previousDate = DateTime.MinValue;
return false;
}
previousDate = date;
date = DateTime.MinValue;
invalid = true;
return true;
}
}
}