RpcDeleteParameters.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using System;
  2. using InABox.Core;
  3. namespace InABox.Rpc
  4. {
  5. public class RpcDeleteParameters : IRpcCommandParameters
  6. {
  7. /// <summary>
  8. /// The type to be deleted; guaranteed to be an <see cref="Entity"/>.
  9. /// </summary>
  10. public Type Type { get; set; }
  11. public Guid[] IDs { get; set; }
  12. public string AuditNote { get; set; }
  13. public string CommandName => "Delete";
  14. public void SerializeBinary(CoreBinaryWriter writer)
  15. {
  16. writer.Write(Type.EntityName());
  17. writer.WriteBinaryValue(IDs);
  18. writer.Write(AuditNote);
  19. }
  20. public void DeserializeBinary(CoreBinaryReader reader)
  21. {
  22. Type = CoreUtils.GetEntity(reader.ReadString());
  23. IDs = reader.ReadBinaryValue<Guid[]>();
  24. AuditNote = reader.ReadString();
  25. }
  26. public string FullDescription() => $"Delete{Type.Name}({IDs.Length}) IDs=[{string.Join(',', IDs)}]";
  27. public string ShortDescription() => $"Delete{Type.Name}({IDs.Length})";
  28. }
  29. }