45 lines
864 B
C#
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;
|
|
}
|
|
}
|
|
}
|