コード例 #1
0
        public async Task CreateServerLogItem(ServerLogItem item)
        {
            // TODO check if there is a better way of doing this

            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }

            var channel = await _context.Channel.SingleOrDefaultAsync(x => x.ChannelId == item.Channel.ChannelId);

            var guild = await _context.Guild.SingleOrDefaultAsync(x => x.GuildId == item.Guild.GuildId);

            if (channel != null)
            {
                item.Channel = channel;
            }

            if (guild != null)
            {
                item.Guild = guild;
            }

            _context.Add(item);
        }
コード例 #2
0
        public void DeleteServerLogItem(ServerLogItem item)
        {
            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }

            _context.ServerLogItem.Remove(item);
        }
コード例 #3
0
            public void WriteLog(string log, DateTime timestamp, ServerLogItem.LogItemSeverity severity)
            {
                ServerLogItem logitem = new ServerLogItem(log, timestamp, severity);

                _logs.Add(logitem);
                if (NewLog != null)
                {
                    NewLog(logitem);
                }
            }
コード例 #4
0
        private void LogServerStarted()
        {
            var serverItem = new ServerLogItem
            {
                ServerId  = this.Id,
                Date      = this.StartTime,
                EventType = EventTypeEnum.Started
            };

            ServerManager.Add(serverItem, _cs);
        }
コード例 #5
0
        public void LogServerStopped()
        {
            var serverItem = new ServerLogItem
            {
                AvailableClientsCount = GetAvailableClientsCount(),
                ServerId  = this.Id,
                Date      = this.StartTime,
                EventType = EventTypeEnum.Stopped
            };

            ServerManager.Add(serverItem, _cs);
        }
コード例 #6
0
        public void LogServerRunning()
        {
            while (!_stop)
            {
                Thread.Sleep(5000);

                var serverItem = new ServerLogItem
                {
                    AvailableClientsCount = GetAvailableClientsCount(),
                    ServerId  = this.Id,
                    Date      = DateTime.Now,
                    EventType = EventTypeEnum.Running
                };
                ServerManager.Add(serverItem, _cs);
            }
        }
コード例 #7
0
        public static void Add(ServerLogItem item, string cs)
        {
            using (var ctx = new ExchangeDataContext(cs))
            {
                var cl = new ServerLog()
                {
                    EventTypeId           = (int)item.EventType,
                    EventDate             = item.Date,
                    Data                  = item.Data,
                    ServerId              = item.ServerId,
                    AvailableClientsCount = item.AvailableClientsCount
                };

                ctx.ServerLogs.InsertOnSubmit(cl);
                ctx.SubmitChanges();
            }
        }
コード例 #8
0
 private static void WebServerLog_LogAdded(ServerLogItem item)
 {
     Console.WriteLine($"[{item.Date}] [{item.Type}] ({item.InfoType}) {item.SenderType}: {item.Information}");
 }
コード例 #9
0
 public void UpdateServerLogItem(ServerLogItem item)
 {
     // Handeled automaticlly by EF Core :)
 }