Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public abstract class SaleStatus
- {
- public int IdSaleStatus { get; set; }
- public string Description { get; set; }
- public abstract void ChangeTo(Sale sale, SaleStatus saleStatus);
- }
- public class SaleStatusBooked : SaleStatus
- {
- public SaleStatusBooked()
- {
- this.IdSaleStatus = 1;
- Description = "Reservado";
- }
- public override void ChangeTo(Sale sale, SaleStatus newStatus)
- {
- if (!(newStatus is SaleStatusPaid) || (!(newStatus is SaleStatusTimeOut)))
- throw new BusinessException("salestatus");
- sale.SetStatus(newStatus);
- }
- }
- public class SaleStatusPaid : SaleStatus
- {
- public SaleStatusPaid()
- {
- this.IdSaleStatus = 2;
- Description = "Pago";
- }
- public override void ChangeTo(Sale sale, SaleStatus newStatus)
- {
- if (!(newStatus is SaleStatusCancelled) || (!(newStatus is SaleStatusNotResolved)) || (!(newStatus is SaleStatusCriticalError)))
- throw new BusinessException("salestatus");
- sale.SetStatus(newStatus);
- }
- }
- public class SaleStatusMap: EntityTypeConfiguration<SaleStatus>
- {
- public SaleStatusMap()
- {
- ToTable("SaleStatus");
- HasKey(ss => ss.IdSaleStatus);
- Map<SaleStatusBooked>(pk => pk.Requires("IdSaleStatus").HasValue(1));
- Map<SaleStatusPaid>(pk => pk.Requires("IdSaleStatus").HasValue(2));
- }
- }
- public class SaleStatusMap: EntityTypeConfiguration<SaleStatus>
- {
- public SaleStatusMap()
- {
- ToTable("SaleStatus");
- HasKey(ss => ss.IdSaleStatus);
- Map<SaleStatusBooked>(pk => pk.Requires("StatusType").HasValue(1));
- Map<SaleStatusPaid>(pk => pk.Requires("StatusType").HasValue(2));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement