Skip to content

Instantly share code, notes, and snippets.

@psethi1984
Last active September 18, 2017 00:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save psethi1984/51b22bde411cba00cc8f96a25bfbab5e to your computer and use it in GitHub Desktop.
Save psethi1984/51b22bde411cba00cc8f96a25bfbab5e to your computer and use it in GitHub Desktop.
private LiveDataService liveDataService;
private ObservableCollection<ProductOrder> _orders;
private void ServiceInit()
{
base.ServiceInit();
liveDataService.RegisterFor<ProductOrder>(
newOrder =>
{
_logService.Log("New order received");
_orders.Add(newOrder);
RaisePropertyChanged(() => AllOrders);
},
deletedOrder =>
{
_logService.Log("Order deleted");
_orders.Remove(deletedOrder);
RaisePropertyChanged(() => AllOrders);
},
error =>
{
_logService.Log("Service lost");
HandleError(error);
});
}
private void ServiceDeInit()
{
liveDataService.DeRegisterFor<ProductOrder>();
}
private LiveDataService liveDataService;
private CacheService cacheService;
private ObservableCollection<Product> _specialProducts;
private void ServiceInit()
{
base.ServiceInit();
liveDataService.RegisterFor<List<Product>>(
newProducts => {
_logService.Log("New specials received");
_specialProducts = new ObservableCollection<Product>(newProducts);
RaisePropertyChanged(() => SpecialProducts);
},
d =>
{
// Not required
},
error =>
{
_logService.Log("Service lost");
HandleError(error);
})
.CacheBy(cacheService) // Retrieves data from cache if still valid
.Scope(DiscountedProducts); // DiscountedProducts is synchronisation scope with live data
}
private void ServiceDeInit()
{
liveDataService.DeRegisterFor<List<Product>>();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment