48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Globalization;
|
|
using System.Text;
|
|
|
|
namespace PlantBox.Shared.Communication.Commands
|
|
{
|
|
public class InfoResponse : CommandSerializable<InfoResponse>
|
|
{
|
|
public override Command Command => Command.Info;
|
|
|
|
public string Name { get; set; }
|
|
public PlantType Type { get; set; }
|
|
public PlantState State { get; set; }
|
|
public double Water { get; set; }
|
|
|
|
public override InfoResponse Deserialize(string[] arguments)
|
|
{
|
|
if (arguments == null)
|
|
{
|
|
throw new ArgumentNullException(nameof(arguments));
|
|
}
|
|
if (arguments.Length < 4)
|
|
{
|
|
throw new ArgumentException($"Excepted 4 arguments, got {arguments.Length}");
|
|
}
|
|
|
|
Name = arguments[0];
|
|
Type = (PlantType)Enum.Parse(typeof(PlantType), arguments[1], true);
|
|
State = (PlantState)Enum.Parse(typeof(PlantState), arguments[2], true);
|
|
Water = double.Parse(arguments[3], CultureInfo.InvariantCulture);
|
|
|
|
return this;
|
|
}
|
|
|
|
public override string[] Serialize()
|
|
{
|
|
return new[]
|
|
{
|
|
Name,
|
|
Type.ToString(),
|
|
State.ToString(),
|
|
Water.ToString(CultureInfo.InvariantCulture)
|
|
};
|
|
}
|
|
}
|
|
}
|