Метод | Описание | |
---|---|---|
CustomerOrderActor ( ActorService actorService, ActorId actorId ) : Common | ||
GetOrderStatusAsStringAsync ( ) : Task |
Returns the status of the Customer Order.
|
|
InternalActivateAsync ( ICodePackageActivationContext context, IServiceProxyFactory proxyFactory ) : Task |
Adding this method to support DI/Testing We need to do some work to create the actor object and make sure it is constructed completely In local testing we can inject the components we need, but in a real cluster those items are not established until the actor object is activated. Thus we need to have this method so that the tests can have the same init path as the actor would in prod
|
|
ReceiveReminderAsync ( string reminderName, byte context, System.TimeSpan dueTime, System.TimeSpan period ) : Task | ||
SubmitOrderAsync ( IEnumerable |
This method accepts a list of CustomerOrderItems, representing a customer order, and sets the actor's state to reflect the status and contents of the order. Then, the order is fulfilled with a private FulfillOrder call that abstracts away the entire backorder process from the user.
|
Метод | Описание | |
---|---|---|
OnActivateAsync ( ) : Task |
Initializes CustomerOrderActor state. Because an order actor will only be activated once in this scenario and never used again, when we initiate the actor's state we change the order's status to "Confirmed," and do not need to check if the actor's state was already set to this.
|
|
OnDeactivateAsync ( ) : Task |
Deactivates the actor object
|
Метод | Описание | |
---|---|---|
FulfillOrderAsync ( ) : Task |
This method takes in a list of CustomerOrderItem objects. Using a Service Proxy to access the Inventory Service, the method iterates onces through the order and tries to remove the quantity specified in the order from inventory. If the inventory has insufficient stock to remove the requested amount for a particular item, the entire order is marked as backordered and the item in question is added to a "backordered" item list, which is fulfilled in a separate method. In its current form, this application addresses the question of race conditions to remove the same item by making a rule that no order ever fails. While an item that is displayed in the store may not be available any longer by the time an order is placed, the automatic restock policy instituted in the Inventory Service means that our FulfillOrder method and its sub-methods can continue to query the Inventory Service on repeat (with a timer in between each cycle) until the order is fulfilled.
|
|
GetOrderStatusAsync ( ) : Task |
||
SetOrderStatusAsync ( CustomerOrderStatus orderStatus ) : Task |
public CustomerOrderActor ( ActorService actorService, ActorId actorId ) : Common | ||
actorService | ActorService | |
actorId | ActorId | |
Результат | Common |
public GetOrderStatusAsStringAsync ( ) : Task |
||
Результат | Task |
public InternalActivateAsync ( ICodePackageActivationContext context, IServiceProxyFactory proxyFactory ) : Task | ||
context | ICodePackageActivationContext | |
proxyFactory | IServiceProxyFactory | |
Результат | Task |
public ReceiveReminderAsync ( string reminderName, byte context, System.TimeSpan dueTime, System.TimeSpan period ) : Task | ||
reminderName | string | |
context | byte | |
dueTime | System.TimeSpan | |
period | System.TimeSpan | |
Результат | Task |
public SubmitOrderAsync ( IEnumerable |
||
orderList | IEnumerable |
|
Результат | Task |