93 lines
2.5 KiB
C#
93 lines
2.5 KiB
C#
using Barcode.Host.Shared.DataModels;
|
|
using Barcode.Host.Shared.KeyboardMouse;
|
|
using Barcode.Host.Shared.Models.Stateless;
|
|
|
|
namespace Barcode.Host.Server.Services;
|
|
|
|
public class LastScanService : ILastScanService
|
|
{
|
|
|
|
private readonly List<(EventCode EventCode, char Char)> _EventCodes;
|
|
|
|
public LastScanService() =>
|
|
_EventCodes = new();
|
|
|
|
void ILastScanService.Clear()
|
|
{
|
|
lock (_EventCodes)
|
|
_EventCodes.Clear();
|
|
}
|
|
|
|
void ILastScanService.Add(EventCode eventCode, char @char)
|
|
{
|
|
lock (_EventCodes)
|
|
_EventCodes.Add((eventCode, @char));
|
|
}
|
|
|
|
Result<string> ILastScanService.GetScan()
|
|
{
|
|
Result<string> result;
|
|
char[] chars;
|
|
lock (_EventCodes)
|
|
chars = _EventCodes.Select(l => l.Char).ToArray();
|
|
result = new() { Results = new string(chars), TotalRows = chars.Length };
|
|
return result;
|
|
}
|
|
|
|
int ILastScanService.GetCount()
|
|
{
|
|
int result;
|
|
lock (_EventCodes)
|
|
result = _EventCodes.Count;
|
|
return result;
|
|
}
|
|
|
|
List<(EventCode, char)> ILastScanService.IncludeEventCodes()
|
|
{
|
|
List<(EventCode, char)> results = new()
|
|
{
|
|
(EventCode.A, 'A'),
|
|
(EventCode.B, 'B'),
|
|
(EventCode.C, 'C'),
|
|
(EventCode.D, 'D'),
|
|
(EventCode.E, 'E'),
|
|
(EventCode.F, 'F'),
|
|
(EventCode.G, 'G'),
|
|
(EventCode.H, 'H'),
|
|
(EventCode.I, 'I'),
|
|
(EventCode.J, 'J'),
|
|
(EventCode.K, 'K'),
|
|
(EventCode.L, 'L'),
|
|
(EventCode.M, 'M'),
|
|
(EventCode.N, 'N'),
|
|
(EventCode.O, 'O'),
|
|
(EventCode.P, 'P'),
|
|
(EventCode.Q, 'Q'),
|
|
(EventCode.R, 'R'),
|
|
(EventCode.S, 'S'),
|
|
(EventCode.T, 'T'),
|
|
(EventCode.U, 'U'),
|
|
(EventCode.V, 'V'),
|
|
(EventCode.W, 'W'),
|
|
(EventCode.X, 'X'),
|
|
(EventCode.Y, 'Y'),
|
|
(EventCode.Z, 'Z'),
|
|
(EventCode.Num0, '0'),
|
|
(EventCode.Num1, '1'),
|
|
(EventCode.Num2, '2'),
|
|
(EventCode.Num3, '3'),
|
|
(EventCode.Num4, '4'),
|
|
(EventCode.Num5, '5'),
|
|
(EventCode.Num6, '6'),
|
|
(EventCode.Num7, '7'),
|
|
(EventCode.Num8, '8'),
|
|
(EventCode.Num9, '9'),
|
|
(EventCode.Minus, '-'),
|
|
(EventCode.Dot, '.'),
|
|
(EventCode.Slash, '/'),
|
|
(EventCode.Space, ' '),
|
|
};
|
|
return results;
|
|
}
|
|
|
|
} |