51 lines
1.2 KiB
C#
51 lines
1.2 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using YamlDotNet.Serialization;
|
|
|
|
namespace Akari.Provider.WaveshareUART.Users
|
|
{
|
|
public class User
|
|
{
|
|
public string Name { get; private set; }
|
|
|
|
public string Token { get; private set; }
|
|
|
|
public ushort Start { get; private set; }
|
|
public ushort Position { get; private set; }
|
|
|
|
[YamlIgnore()]
|
|
public int Count => Position - Start;
|
|
[YamlIgnore()]
|
|
public IEnumerable<ushort> ValidPositions => Enumerable.Range(Start, Count).Cast<ushort>();
|
|
|
|
public User()
|
|
{
|
|
|
|
}
|
|
|
|
public User(string name, string token, ushort start)
|
|
{
|
|
Name = name;
|
|
Token = token;
|
|
Start = start;
|
|
Position = Start;
|
|
}
|
|
|
|
public bool IncrementPosition()
|
|
{
|
|
if (Position - Start < UsersManager.RangeLength)
|
|
{
|
|
Position++;
|
|
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public bool IsInRange(int position) => position >= Start && position < Position;
|
|
|
|
public override string ToString() => Name;
|
|
}
|
|
}
|