Advertisement
Guest User

Untitled

a guest
Feb 13th, 2016
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. public abstract class SaleStatus
  2. {
  3. public int IdSaleStatus { get; set; }
  4. public string Description { get; set; }
  5.  
  6. public abstract void ChangeTo(Sale sale, SaleStatus saleStatus);
  7. }
  8.  
  9. public class SaleStatusBooked : SaleStatus
  10. {
  11. public SaleStatusBooked()
  12. {
  13. this.IdSaleStatus = 1;
  14. Description = "Reservado";
  15. }
  16.  
  17. public override void ChangeTo(Sale sale, SaleStatus newStatus)
  18. {
  19. if (!(newStatus is SaleStatusPaid) || (!(newStatus is SaleStatusTimeOut)))
  20. throw new BusinessException("salestatus");
  21.  
  22. sale.SetStatus(newStatus);
  23. }
  24. }
  25.  
  26. public class SaleStatusPaid : SaleStatus
  27. {
  28. public SaleStatusPaid()
  29. {
  30. this.IdSaleStatus = 2;
  31. Description = "Pago";
  32. }
  33.  
  34. public override void ChangeTo(Sale sale, SaleStatus newStatus)
  35. {
  36. if (!(newStatus is SaleStatusCancelled) || (!(newStatus is SaleStatusNotResolved)) || (!(newStatus is SaleStatusCriticalError)))
  37. throw new BusinessException("salestatus");
  38.  
  39. sale.SetStatus(newStatus);
  40. }
  41. }
  42.  
  43. public class SaleStatusMap: EntityTypeConfiguration<SaleStatus>
  44. {
  45. public SaleStatusMap()
  46. {
  47. ToTable("SaleStatus");
  48. HasKey(ss => ss.IdSaleStatus);
  49.  
  50. Map<SaleStatusBooked>(pk => pk.Requires("IdSaleStatus").HasValue(1));
  51. Map<SaleStatusPaid>(pk => pk.Requires("IdSaleStatus").HasValue(2));
  52. }
  53. }
  54.  
  55. public class SaleStatusMap: EntityTypeConfiguration<SaleStatus>
  56. {
  57. public SaleStatusMap()
  58. {
  59. ToTable("SaleStatus");
  60. HasKey(ss => ss.IdSaleStatus);
  61.  
  62. Map<SaleStatusBooked>(pk => pk.Requires("StatusType").HasValue(1));
  63. Map<SaleStatusPaid>(pk => pk.Requires("StatusType").HasValue(2));
  64. }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement