using System; using System.Collections.Generic; using System.Globalization; using System.Text; namespace PlantBox.Shared.Communication.Commands { public class InfoResponse : CommandSerializable { 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) }; } } }