public Profile(ITradePriceMonitor priceMonitor)
 {
     PriceType = priceMonitor.PriceType;
     TargetCurrency = priceMonitor.TargetCurrency;
     Frequency = priceMonitor.Frequency;
     MonitorType = priceMonitor.GetType().Name;
 }
 private void Notify(ITradePriceMonitor newPriceMonitor)
 {
     foreach (var listener in _loadProfileListeners)
     {
         listener.ProfileLoaded(newPriceMonitor);
     }
 }
 public void ProfileLoaded(ITradePriceMonitor loadedPriceMonitor)
 {
     _tradePriceMonitor = loadedPriceMonitor;
     _menuSections.DatasourceSection.UpdateTradePriceMonitor(_tradePriceMonitor);
     _menuSections.PriceTypeSection.UpdateTradePriceMonitor(_tradePriceMonitor);
     _menuSections.CurrencySection.UpdateTradePriceMonitor(_tradePriceMonitor);
     _menuSections.FrequencySection.UpdateTradePriceMonitor(_tradePriceMonitor);
     InitMenuOptions();
 }
 public TradePriceMonitorContextMenu(ITradePriceMonitor tradePriceMonitor, ITradePriceMenuSections menuSections)
 {
     _tradePriceMonitor = tradePriceMonitor;
     _menuSections = menuSections;
     (_menuSections.LoadProfileSection as IProfileLoader)?.Subscribe(this);
     (_menuSections.DatasourceSection as IProfileLoader)?.Subscribe(this);
     Menu = GetMenu();
     InitMenuOptions();
 }
 public BitcoinPriceMonitorApp(ITradePriceMonitor priceMonitor, 
     ITradePriceMonitorContextMenu contextMenu,
     INotificationTrayIcon notifyIcon)
 {
     _priceMonitor = priceMonitor;
     _contextMenu = contextMenu;
     _notifyIcon = notifyIcon;
     AppDomain.CurrentDomain.ProcessExit += (sender, e) => _notifyIcon.Close();
 }
 public SaveProfileContextMenuSection(ITradePriceMonitor tradePriceMonitor, IProfileStore profileStore) : base(tradePriceMonitor, profileStore)
 {
 }
 public CurrencyContextMenuItemSection(ITradePriceMonitor tradePriceMonitor, IProfileStore profileStore) 
     : base(tradePriceMonitor, profileStore)
 {
 }
 public void SavePersistenceProfile(ITradePriceMonitor profile)
 {
     SaveProfile(profile, _settings.PersistanceProfileName);
 }
 public void SaveProfile(ITradePriceMonitor profile, string profileName)
 {
     var serializer = new JavaScriptSerializer();
     var serializedProfile = serializer.Serialize(new Profile(profile));
     File.WriteAllText(GetProfileFileName(profileName), serializedProfile);
 }
 public ProfileMenuItemSection(ITradePriceMonitor tradePriceMonitor, IProfileStore profileStore)
     : base(tradePriceMonitor, profileStore)
 {    
 }
 public void UpdateTradePriceMonitor(ITradePriceMonitor updatedTradePriceMonitor)
 {
     TradePriceMonitor = updatedTradePriceMonitor;
     InitMenuItem();
 }
 public TradePriceMonitorContextMenuSection(ITradePriceMonitor tradePriceMonitor, IProfileStore profileStore)
 {
     TradePriceMonitor = tradePriceMonitor;
     ProfileStore = profileStore;
 }
 public FrequencyContextMenuSection(ITradePriceMonitor tradePriceMonitor, IProfileStore profileStore)
     : base(tradePriceMonitor, profileStore)
 {
 }
 public DatasourceContextMenuSection(ITradePriceMonitor tradePriceMonitor, IProfileStore profileStore, ITradePriceMonitorFactory monitorFactory)
     : base(tradePriceMonitor, profileStore)
 {
     _monitorFactory = monitorFactory;
 }