public async Task <Order> GetOrderAsync(Guid orderId) { var orderActor = new OrderActorProxy().CreateActor(orderId); var order = await orderActor.GetOrderAsync(CancellationToken.None); return(order); }
public async Task <Order> Create([FromBody] Order order) { if (order == null) { return(null); } try { var tableActor = new TableActorProxy().CreateActor(order.TableId); order.OrderId = Guid.NewGuid(); var dish = await new MenuServiceProxyFactory().CreateServiceProxy(order.RestaurantId).GetDishAsync(order.RestaurantId, order.DishId); order.Price = dish.Price; var orderActor = new OrderActorProxy().CreateActor(order.OrderId); await orderActor.AddOrderAsync(order, CancellationToken.None); await tableActor.AddOrder(new TableOrder() { Dish = dish.Name, OrderId = order.OrderId, Price = dish.Price }, CancellationToken.None); return(await orderActor.GetOrderAsync(CancellationToken.None)); } catch (Exception ex) { Debug.WriteLine(ex.Message); throw; } }
async Task ITableActor.AddOrder(TableOrder tableOrder, CancellationToken cancellationToken) { var tableOrderContract = new TableOrderContract { OrderId = tableOrder.OrderId, Price = tableOrder.Price, Dish = tableOrder.Dish }; var list = await GetTableOrderContracts(cancellationToken); list.Add(tableOrderContract); await StateManager.AddOrUpdateStateAsync(ListName, list, (key, value) => list, cancellationToken); var actor = new OrderActorProxy().CreateActor(tableOrder.OrderId); await actor.SubscribeAsync(this); }