private static UpdateAction <ManageableMarketDataSnapshot> PrepareSurfaceAddAction(VolatilitySurfaceKey key, ManageableVolatilitySurfaceSnapshot value) { var valueClone = value.Clone(); return(new UpdateAction <ManageableMarketDataSnapshot>( delegate(ManageableMarketDataSnapshot snap) { snap._volatilitySurfaces.Add(key, valueClone.Clone()); snap.InvokePropertyChanged(new PropertyChangedEventArgs("VolatilitySurfaces")); } )); }