using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
namespace Rdh.SocketServer.Client.Models
{
public abstract class BaseEleMedKitProtocol
{
public virtual string? Command { get; set; }
///
/// 获取或设置数据的最小行数
///
public virtual int MinLines { get; set; } = 1;
public virtual string AddLineContent(string? line)
{
return line == null
? string.Empty
: EleMedKitProtocolFlags.LineStart + line + EleMedKitProtocolFlags.LineEnd;
}
public virtual string AddBlockContent(string? content)
{
return content == null
? string.Empty
: EleMedKitProtocolFlags.BlockSpiltor + content;
}
public virtual string AddList(IEnumerable? list)
{
if (list == null || list.Count() == 0)
{
return string.Empty;
}
StringBuilder builder = new StringBuilder();
if (typeof(T) == typeof(string))
{
foreach (T t in list)
{
builder.Append(t as string);
}
}
else
{
foreach (T t in list)
{
builder.Append(t.ToString());
}
}
return builder.ToString();
}
public abstract string GetContent();
///
/// 检验数据行并进行解析
///
///
/// 是否检验成功
public virtual bool ParseContent(string[] lines)
{
if (lines == null || lines.Length < 1)
{
return false;
}
Command = lines[0];
return true;
}
public override string ToString()
{
return EleMedKitProtocolFlags.Start + GetContent() + EleMedKitProtocolFlags.End;
}
}
}