DB(SQL Server)からのさまざまなタイプの注文を表示するさまざまなセクションを持つビューがあります。ここで、Android アプリケーションから新しい注文が送信されるたびに、更新された情報でビューを更新する必要があります。以下にコード スニペットを示します。
ビューモデル:
public class KitchenViewModel
{
public List<Orders> DisplayOrders { get; set; }
public List<Orders> PreparedOrders { get; set; }
public List<OrderItem> ProgressItems { get; set; }
public List<OrderItem> QueuedItems { get; set; }
public int DisplayOrdCount { get; set; }
public int PreparedOrdCount { get; set; }
public int QueuedOrdCount { get; set; }
}
コントローラ:
public ActionResult KitchenOrder()
{
KitchenModel kitchenInstance = new KitchenModel();
List<Orders> orders = kitchenInstance.GetProgOrdersList();
List<OrderItem> progressItems = kitchenInstance.GetItemProgress();
List<OrderItem> queuedItems = kitchenInstance.GetItemQueued();
List<Orders> prepOrders = kitchenInstance.GetPrepOrdersList();
List<Orders> queuedOrders = kitchenInstance.GetQueuedOrdersList();
KitchenViewModel viewModel = new KitchenViewModel();
viewModel.PreparedOrders = prepOrders;
viewModel.ProgressItems = progressItems;
viewModel.DisplayOrders = orders;
viewModel.QueuedItems = queuedItems;
viewModel.DisplayOrdCount = orders.Count;
viewModel.PreparedOrdCount = prepOrders.Count;
viewModel.QueuedOrdCount = queuedOrders.Count;
return View(viewModel);
}
今のところ、15秒ごとにビューを自動更新していますが、これは完全に機能しています。ただし、新しい注文が Android アプリケーションから送信され、注文が DB に挿入された場合にのみ、ビューを更新する必要があります。新しい注文が送信されると、PreparedOrders、Progressitems、DisplayOrders の値が変更されるため、再度取得する必要があります。オブザーバー パターンとパブリッシャー/サブスクライバー メソッドに関連する多くの投稿/チュートリアルを読みましたが、最適な明確なソリューションを取得できませんでした。誰かが役立つ可能性のあるシナリオで使用するための関連するポインター/チュートリアルを提供してください。これは私の最初のプロジェクトであり、まったくの初心者であるため、どのように進めればよいか非常に混乱しています。