public static List<ChatTag> GetTags()
 {
     using (var db = new CommandsDB())
     {
         var query = from p in db.Tags select p;
         return query.ToList();
     }
 }
 public static void RemoveTag(string tagName)
 {
     var customTag = Tags.FirstOrDefault(x => x.Name.ToLower().Equals(tagName.ToLower()));
     if (customTag == null) return;
     Tags.Remove(customTag);
     using (var db = new CommandsDB())
     {
         db.Tags.Where(x => x.Name.ToLower().Equals(tagName.ToLower())).Delete();
     }
     //Similar to Begin invoke, this will execute the following task on the UI scheduler thread.
     var task = new Task(() => CommandsController.RefreshCustomTagsGrid());
     task.Start(CommandsController.Scheduler);
     EventManager.LogEvent("CommandManager", tagName + " has been removed from tags.", EventManager.RedTextStyle);
 }
        public static void RemoveCommand(string cmdName)
        {

            var customCommand = Commands.FirstOrDefault(x => x.Name.ToLower().Equals(cmdName.ToLower()));
            if (customCommand == null) return;
            lock (Commands)
            {
                Commands.Remove(customCommand);
            }

            var commandOutput = CommandsOutput.FirstOrDefault(x => x.Name == cmdName.ToLower());
            if(commandOutput != null) CommandsOutput.Remove(commandOutput);

            using (var db = new CommandsDB())
            {
                db.Commands.Where(x => x.Name.ToLower().Equals(cmdName.ToLower())).Delete();
            }
            //Similar to Begin invoke, this will execute the following task on the UI scheduler thread.
            var task = new Task(() => CommandsController.RefreshCustomCommandsGrid());
            task.Start(CommandsController.Scheduler);

            EventManager.LogEvent("CommandManager", cmdName + " has been removed from commands.", EventManager.RedTextStyle);
        }
 public static CreateTagResult AddTag(string tagName, string tagText)
 {
     if (Tags.Count(x => x.Name.ToLower().Equals(tagName.ToLower())) >= 1)
     {
         return CreateTagResult.NameAlreadyUsed;
     }
     //
     var chatTag = new ChatTag
     {
         Name = tagName,
         Text = tagText,
     };
     Tags.Add(chatTag);
     using (var db = new CommandsDB())
     {
         db.Insert(chatTag);
     }
     //Similar to Begin invoke, this will execute the following task on the UI scheduler thread.
     var task = new Task(() => CommandsController.RefreshCustomTagsGrid());
     task.Start(CommandsController.Scheduler);
     EventManager.LogEvent("CommandManager", tagName + " has been added to tags.", EventManager.GreenTextStyle);
     return CreateTagResult.Success;
 }
        public static CreateCommandResult CreateCommand(string cmdName, string cmdText, string cmdLevel, int cmdTimer)
        {
            if(cmdName == null || cmdText == null) return CreateCommandResult.UnexpectedError;

            if (Commands.Count(x => x.Name != null && x.Name.ToLower().Equals(cmdName.ToLower())) >= 1)
            {
                return CreateCommandResult.NameAlreadyUsed;
            }
            var chatCommand = new ChatCommand
            {
                Name = cmdName,
                Text = cmdText,
                Level = (UserType)UserTypeStringToInt(cmdLevel),
                Timer = cmdTimer
            };
            lock (Commands)
            {
                Commands.Add(chatCommand);
            }
            using (var db = new CommandsDB())
            {
                db.Insert(chatCommand);
            }
            //Similar to Begin invoke, this will execute the following task on the UI scheduler thread.
            var task = new Task(() => CommandsController.RefreshCustomCommandsGrid());
            task.Start(CommandsController.Scheduler);
            EventManager.LogEvent("CommandManager", cmdName + " has been added to commands.", EventManager.GreenTextStyle);
            return CreateCommandResult.Success;
        }