private async Task <int> DeleteTimer(DiscordTimer timer) { TimerDetail detail = new TimerDetail() { Name = timer.Name, UserId = timer.User.Id, ChannelId = timer.Channel.Id, NextNotificationTime = timer.NextNotificationTime, EndTime = timer.EndTime }; List <TimerDetail> results = new List <TimerDetail>(); try { results = _timerDb.Timers.Where(x => x.UserId == timer.User.Id && x.Name == timer.Name).ToList(); } catch (ArgumentNullException) { // Do nothing. } if (results.Count > 0) //timer exists { var timers = new List <TimerDetail>(_timerDb.Timers); foreach (var t in results) { timers.Remove(t); } _timerDb.Timers = timers.ToArray(); await WriteToDisk(); } else // couldn't find timer. { return(-1); } timer.Stop(); timer.Dispose(); return(1); }
private async Task SaveTimer(DiscordTimer timer) { TimerDetail detail = new TimerDetail() { Name = timer.Name, UserId = timer.User.Id, ChannelId = timer.Channel.Id, NextNotificationTime = timer.NextNotificationTime, EndTime = timer.EndTime }; List <TimerDetail> results = new List <TimerDetail>(); try { results = _timerDb.Timers.Where(x => x.UserId == timer.User.Id).ToList(); } catch (ArgumentNullException) { // Do nothing. } if (results.Count > 0) //timer exists { if (timer.Name != null) { var result = results.FirstOrDefault(x => x.Name == timer.Name); if (result != null) { _timerDb.Timers.Where(x => x.UserId == timer.User.Id && x.Name == timer.Name).Select(t => t = detail); } else { if (_timerDb.Timers == null) { _timerDb.Timers = new TimerDetail[] { detail }; } else { TimerDetail[] t = new TimerDetail[_timerDb.Timers.Length + 1]; for (int i = 0; i < _timerDb.Timers.Length; i++) { t[i] = _timerDb.Timers[i]; } t[t.Length - 1] = detail; _timerDb.Timers = t; } } } else { _timerDb.Timers.Where(x => x.UserId == timer.User.Id).Select(t => t = detail); } } else // timer not found. { if (_timerDb.Timers == null) { _timerDb.Timers = new TimerDetail[] { detail }; } else { TimerDetail[] t = new TimerDetail[_timerDb.Timers.Length + 1]; for (int i = 0; i < _timerDb.Timers.Length; i++) { t[i] = _timerDb.Timers[i]; } t[t.Length - 1] = detail; _timerDb.Timers = t; } } await WriteToDisk(); }