public void Register(IClockListner listner) { if (listner == null) throw new ArgumentNullException("listner"); var cityInfo = listner.CityInfo; if (cityInfo == null) throw new ArgumentException("CityInfo is null"); _listners.Add(listner); if (!_timeZoneServiceCache.ContainsKey(cityInfo.TimeZoneId)) { var service = TimeZoneService.FindSystemTimeZoneById(cityInfo.TimeZoneId); _timeZoneServiceCache.Add(cityInfo.TimeZoneId, service); } NotifyListner(listner); }
public void UnRegister(IClockListner listner) { _listners.Remove(listner); }
private void NotifyListner(IClockListner clockListner) { var service = GetTimeService(clockListner.CityInfo.TimeZoneId); var date = CalculateTime(service); clockListner.TickTack(date); }