|
|
|
@ -23,12 +23,13 @@ public class Order : AggregateRoot<Guid> |
|
|
|
{ |
|
|
|
} |
|
|
|
|
|
|
|
internal Order(Guid id, Buyer buyer, Address address, PaymentType paymentType, Guid? paymentRequestId = null) : base(id) |
|
|
|
internal Order(Guid id, Buyer buyer, Address address, PaymentType paymentType, |
|
|
|
Guid? paymentRequestId = null) : base(id) |
|
|
|
{ |
|
|
|
_orderStatusId = OrderStatus.Placed.Id; |
|
|
|
_paymentTypeId = paymentType.Id; |
|
|
|
OrderDate = DateTime.UtcNow; |
|
|
|
OrderNo = id.GetHashCode(); |
|
|
|
OrderNo = GenerateOrderNo(id); |
|
|
|
Buyer = buyer; |
|
|
|
Address = address; |
|
|
|
PaymentRequestId = paymentRequestId; |
|
|
|
@ -36,6 +37,18 @@ public class Order : AggregateRoot<Guid> |
|
|
|
OrderItems = new List<OrderItem>(); |
|
|
|
} |
|
|
|
|
|
|
|
private int GenerateOrderNo(Guid id) |
|
|
|
{ |
|
|
|
// Simple order no generation. Should be improved for uniqueness.
|
|
|
|
var code = Id.GetHashCode(); |
|
|
|
if (code < 0) // Should be negative
|
|
|
|
{ |
|
|
|
code *= -1; |
|
|
|
} |
|
|
|
|
|
|
|
return code; |
|
|
|
} |
|
|
|
|
|
|
|
internal Order SetOrderAccepted(Guid paymentRequestId, string paymentRequestStatus) |
|
|
|
{ |
|
|
|
PaymentRequestId = paymentRequestId; |
|
|
|
|