示例#1
0
        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);
        }
示例#2
0
        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();
        }