Files
Akari.Provider.WaveshareUART/Users/User.cs
Eveldee e42974886d Add IsFull() and ResetPosition() to User
Also set Token setter to public
2021-01-25 21:09:29 +01:00

58 lines
1.3 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; 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 (Count < UsersManager.RangeLength)
{
Position++;
return true;
}
return false;
}
public bool IsFull() => Count >= UsersManager.RangeLength;
public bool IsInRange(int position) => position >= Start && position < Position;
public void ResetPosition()
{
Position = Start;
}
public override string ToString() => Name;
}
}