Address.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. namespace InABox.Core
  2. {
  3. public class Address : EnclosedEntity, IPersistent, IRemotable
  4. {
  5. [EditorSequence(1)]
  6. [MemoEditor]
  7. public string Street { get; set; } = "";
  8. [EditorSequence(2)]
  9. [TextBoxEditor]
  10. public string City { get; set; } = "";
  11. [EditorSequence(3)]
  12. [ComboLookupEditor(typeof(StateLookups))]
  13. public string State { get; set; } = "";
  14. [EditorSequence(4)]
  15. [CodeEditor(Editable = Editable.Enabled)]
  16. public string PostCode { get; set; } = "";
  17. [NullEditor]
  18. public Location Location => InitializeField(ref _location, nameof(Location));
  19. private Location? _location;
  20. private class StateLookups : LookupGenerator<object>
  21. {
  22. public StateLookups(object[] items) : base(items)
  23. {
  24. AddValue("Australian Capital Territory", "Australian Capital Territory");
  25. AddValue("New South Wales", "New South Wales");
  26. AddValue("Northern Territory", "Northern Territory");
  27. AddValue("Queensland", "Queensland");
  28. AddValue("South Australia", "South Australia");
  29. AddValue("Tasmania", "Tasmania");
  30. AddValue("Victoria", "Victoria");
  31. AddValue("Western Australia", "Western Australia");
  32. }
  33. }
  34. public void CopyFrom(Address address)
  35. {
  36. Street = address.Street;
  37. City = address.City;
  38. State = address.State;
  39. PostCode = address.PostCode;
  40. Location.CopyFrom(address.Location);
  41. }
  42. }
  43. }