public static UserViewModel Get(User user) { if (user == null) return null; lock (syncCache) { UserViewModel userViewModel = null; return cache.TryGetValue(user.Id, out userViewModel) ? userViewModel : cache.AddOrUpdate(user.Id, new UserViewModel(user), (_, u) => u); } }
static UserViewModel() { var emptyUser = new User { ScreenName = new ScreenName("(empty)"), Name = "@-------", CreatedAt = DateTime.Now, Location = "--------, -----, Japan", Description = "--------------------.", }; lock (syncCache) { cache = new ConcurrentDictionary<UserId, UserViewModel>(); cache.AddOrUpdate(0, new UserViewModel(emptyUser), (_, u) => u); } }
private UserViewModel(User user) { this.user = user; this.CompositeDisposable.Add( new PropertyChangedEventListener(user) { (sender, e) => this.RaisePropertyChanged(e.PropertyName) }); }
public UserViewModel(User user) { this.user = user; }