Add Info Command

This commit is contained in:
2019-03-24 11:34:35 +01:00
parent b02114f0f9
commit 6d7a9969cd
4 changed files with 95 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace PlantBox.Shared.Communication.Commands
{
public class InfoRequest : CommandSerializable<InfoRequest>
{
public override Command Command => Command.Info;
public override InfoRequest Deserialize(string[] arguments)
{
return this;
}
public override string[] Serialize()
{
return Array.Empty<string>();
}
}
}

View File

@@ -0,0 +1,47 @@
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)
};
}
}
}

View File

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace PlantBox.Shared.Communication.Commands
{
public enum PlantState
{
Bad,
Warning,
Good
}
}

View File

@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace PlantBox.Shared.Communication.Commands
{
public enum PlantType
{
Bamboo,
Bonsai,
Cactus,
Ficus,
}
}