Add Start and Position to User
This commit is contained in:
@@ -3,25 +3,51 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
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 RangeStart { get; private set; }
|
||||
|
||||
public ushort Start { get; private set; }
|
||||
public ushort Position { get; private set; }
|
||||
|
||||
[YamlIgnore()]
|
||||
public int Count => Position - Start;
|
||||
[YamlIgnore()]
|
||||
public IEnumerable<int> ValidPositions => Enumerable.Range(Start, Count);
|
||||
|
||||
public User()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public User(string name, string token, ushort rangeStart)
|
||||
public User(string name, string token, ushort start)
|
||||
{
|
||||
Name = name;
|
||||
Token = token;
|
||||
RangeStart = rangeStart;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user