/// <summary> /// Creates alert from modified data that user specified when creating alert. /// </summary> /// <param name="panel">Panel with filled controls.</param> /// <param name="edited">If alert is edited don't add it to list (already in it).</param> /// <returns></returns> public bool CreateAlert(AlertData alertData, Notification notification, MetroPanel panel, bool edited = false, AbstractAlert newAlert = null) { // Alert type is changed if (newAlert != null) { newAlert.AlertData = alertData; newAlert._notification = notification; if (newAlert.Create(panel)) { Alerts[Alerts.IndexOf(this)] = newAlert; newAlert.Subscribe(newAlert.CandlesLength.MinLength, newAlert.CandlesLength.MaxLength); SaveAlertsAsync(); return(true); } } AlertData = alertData; _notification = notification; if (Create(panel)) { // initializing alert if (!edited) { Alerts.Add(this); } Subscribe(CandlesLength.MinLength, CandlesLength.MaxLength); SaveAlertsAsync(); return(true); } return(false); }
// creates alert data from line private void BaseFromLine(string data) { AlertData = new AlertData(ref data); _notification = new Notification(ref data); _lastTriggered = DateTime.Parse(Utility.GetSubstring(data, ';', 0)); timeframe = (Timeframe)int.Parse(Utility.GetSubstring(data, ';', 1)); data = Utility.GetSubstring(data, ';', 2, false); Init(data); }