public void TestDeleteFile() { var fileInteraction = new FileInteraction("2020"); fileInteraction.deleteFile("C:\\Users\\Simon Scherer\\Desktop\\testDelete.pdf"); Assert.That(!File.Exists("C:\\Users\\Simon Scherer\\Desktop\\testDelete.pdf"), Is.EqualTo(true)); }
public async Task MessageReceivedAsync(SocketMessage rawMessage) { if (rawMessage.Author.IsBot) { return; } Console.WriteLine("Message Recieved from " + rawMessage.Author.Username + ": " + rawMessage.Content); var message = rawMessage as SocketUserMessage; if (message == null) { return; } if (message.Content.StartsWith('!')) { var context = LastCommandContext = new SocketCommandContext(_discord, message); var result = await _commands.ExecuteAsync(context, 1, _services); if (!result.IsSuccess) { await context.Channel.SendMessageAsync(result.ErrorReason); } } else { Program.table.Add(message.Id, message.Author.Username, message.Timestamp.Date, message.Content); Program.table.PrintTableNoPadding(); FileInteraction.ConvertDatabaseToFile(Program.db); } }
public void TestSaveFile() { var fileInteraction = new FileInteraction("2020"); fileInteraction.saveFile("C:\\Users\\Simon Scherer\\Desktop\\testSave.pdf"); Assert.That(File.Exists(fileInteraction.SavePath), Is.EqualTo(true)); }
public DocumentDetailViewModel(string benutzer, Action navigateBack) { _navigateBack = navigateBack; Benutzer = benutzer; Erfassungsdatum = DateTime.Now; TypItems = ComboBoxItems.Typ; fi = new FileInteraction(_erfassungsdatum.Year.ToString()); CmdDurchsuchen = new DelegateCommand(OnCmdDurchsuchen); CmdSpeichern = new DelegateCommand(OnCmdSpeichern); }
public void TestCreateMetadataFile() { var metadataitem = new MetadataItem(); metadataitem.Bezeichnung = "Simon"; metadataitem.Stichwoerter = "Hallo"; metadataitem.Typ = "Quittungen"; metadataitem.ValutaDatum = new DateTime(2020, 12, 12); var fileInteraction = new FileInteraction("2020"); fileInteraction.createMetadataFile(metadataitem); Assert.That(File.Exists(fileInteraction.SavePath), Is.EqualTo(true)); }
public async Task AddFromChannel() { SocketCommandContext last = CommandHandlingService.LastCommandContext; ISocketMessageChannel channel = last.Channel; var t = await channel.GetMessagesAsync(1000).Flatten().ToArray(); foreach (IMessage message in t) { Program.table.Add(message.Id, message.Author.Username, message.Timestamp.Date, message.Content); } Program.table.PrintTableNoPadding(); FileInteraction.ConvertDatabaseToFile(Program.db); Program.table.DumpData(25); }
static async void MainAsync(string[] args) { if (args.Length == 0 || args[0] == "DEBUG") { } else { string path = ""; bool useDirectory = false; for (int i = 0; i < args.Length; i++) { string arg = args[i]; switch (arg) { case "-l": liveSession = true; break; case "--local": { // --local <int> or --local <string> Database[] databases = FileInteraction.ConvertDirectoriesInCurrentDirectoryToDatabases(); if (int.TryParse(args[i + 1], out int index)) { loadedDatabase = databases[index]; } else { foreach (Database database in databases) { if (database.Name == args[i + 1]) { loadedDatabase = database; } } } loadedDatabase?.DumpDataBase(); } break; case "-p": case "--path": { path = i + 1 < args.Length ? args[i + 1] : ""; } break; case "-d": { useDirectory = true; } break; } } if (path != "") { loadedDatabase = useDirectory ? FileInteraction.ConvertDirectoryToDatabase(path) : FileInteraction.ConvertFileToDatabase(path); } bool dontStop = true; List <string> commands = new List <string>(); if (liveSession) { while (loadedDatabase != null && dontStop) { Console.Write(">> "); bool endCommand = false; bool afterCommandMode = false; command = ""; while (!endCommand) { var keyInfo = Console.ReadKey(); Regex acceptableCharacters = new Regex("\\w|[*\\{\\[\\(\\}\\]\\)@_\"=><]"); if (keyInfo.Key == ConsoleKey.Enter) { Console.WriteLine(); if (command.Length == 0) { foreach (string s in commands) { var commandInterpreter = new CommandInterpreter(loadedDatabase, s); } Console.Write(">> "); commands = new List <string>(); } else { Console.Write(" "); } } if (keyInfo.Key == ConsoleKey.Backspace) { if (command.Length > 0) { command = command.Substring(0, command.Length - 1); Console.Write(" "); Console.Write("\b"); } else { Console.Write(" "); } } else if (keyInfo.KeyChar == ';') { commands.Add(command); keyInfo = Console.ReadKey(); afterCommandMode = true; if (keyInfo.Key == ConsoleKey.Enter && command.ToLower() == "exit") { dontStop = false; break; } command = ""; } else if (keyInfo.Key == ConsoleKey.Spacebar || keyInfo.Key == ConsoleKey.Tab) { if (!afterCommandMode) { command += keyInfo.KeyChar; } } else if (acceptableCharacters.IsMatch("" + keyInfo.KeyChar)) { command += keyInfo.KeyChar; if (afterCommandMode) { afterCommandMode = false; } } else { Console.Write(" "); Console.Write("\b"); } } if (dontStop) { } } } else { if (!args[args.Length - 1].Contains('-')) { var commandInterpreter = new CommandInterpreter(loadedDatabase, args[args.Length - 1]); } } } Table idntm = loadedDatabase?["IDNTM"]; Table nameNicknameId = new Table("NN", new Relation(("*Name", typeof(RADString)), ("&Nickname", typeof(RADString)), ("&ID", typeof(RADInteger)))); nameNicknameId.Add("FreedomFries", "Fries", 1); nameNicknameId.Add("Toaster443", "Toaster", 2); nameNicknameId.Add("arvindsindhwani", "Nilla", 3); Table idRole = new Table("RoleInfo", new Relation(("*ID", typeof(RADInteger)), ("Role", typeof(RADString)))); idRole.Add(1, "Admin"); idRole.Add(3, "Admin"); idRole.Add(2, "Standard"); loadedDatabase?.addTable(nameNicknameId); loadedDatabase?.addTable(idRole); if (idntm != null) { var c = new CommandInterpreter(loadedDatabase, "{IDNTM[Name=*]@Name} as NameTable"); c = new CommandInterpreter(loadedDatabase, "NameTable"); c = new CommandInterpreter(loadedDatabase, "{NameTable(Name)=NN(Name)[NN.Name=*]} as NameTable2}"); c = new CommandInterpreter(loadedDatabase, @"{IDNTM(Name)=(NN(ID)=RoleInfo(ID))(NN.Name)" + "[IDNTM.Time=*]" + "@IDNTM.ID,IDNTM.Name,IDNTM.Message} as CoolTable"); c = new CommandInterpreter(loadedDatabase, "{NameTable2(Name)=CoolTable(Name)[CoolTable.Name=*]@CoolTable.ID}"); (c.output as Table)?.PrintTableNoPadding(); (c.output as Table)?.Dump(); Console.WriteLine("Tuples Created: {0}", RelationalAlgebraModule.TuplesCreated); RelationalAlgebraModule.ResetTuplesCreated(); /* * c = new CommandInterpreter(loadedDatabase, * @" {NN(ID)=RoleInfo(ID) * [RoleInfo.Role=Admin] * @NN.Name,NN.Nickname}"); * (c.output as Table)?.PrintTableNoPadding(); * * Console.WriteLine("Tuples Created: {0}", RelationalAlgebraModule.TuplesCreated); * */ } }
public void TestSavePath() { var fileInteraction = new FileInteraction("2020"); Assert.That(fileInteraction.SavePath, Is.EqualTo(ConfigurationManager.AppSettings["RepositoryDir"] + "\\" + fileInteraction.Year + "\\" + fileInteraction.Guid + "_Metadata.xml")); }
public async Task DeleteAndLog(params string[] args) { IEnumerable <IMessage> message = await Context.Channel.GetMessagesAsync().FlattenAsync();; int result; bool validReturn; bool withName = false; string replyMessage = ""; string[] parameters = args; string filename = ""; log.Info("Starting up the Delete and Log function."); if (parameters.Length == 0) { parameters = new string[] { "100" }; var input = parameters[0]; message = await Context.Channel.GetMessagesAsync(Convert.ToInt32(input)).FlattenAsync(); replyMessage = "Are you sure you want to delete " + input + " lines? [Y/N]"; validReturn = true; } else if (parameters.Length == 1) { if (int.TryParse(parameters[0], out result) && Convert.ToInt32(parameters[0]) != 0) { var input = result; if (input > 100) { // Max number input = 100; } message = await Context.Channel.GetMessagesAsync(Convert.ToInt32(input)).FlattenAsync(); replyMessage = "Are you sure you want to delete " + input + " lines? [Y/N]"; validReturn = true; } else { await ReplyAsync("Invalid input."); validReturn = false; } } else if (parameters.Length == 2) { if (int.TryParse(parameters[0], out result) && Convert.ToInt32(parameters[0]) != 0) { var input = result; filename = parameters[1]; if (input > 100) { // Max number input = 100; } message = await Context.Channel.GetMessagesAsync(Convert.ToInt32(input)).FlattenAsync(); replyMessage = "Are you sure you want to delete " + input + " lines? [Y/N]"; validReturn = true; withName = true; } else { await ReplyAsync("Invalid input."); validReturn = false; } } else { replyMessage = "Are you sure you want to delete 100 lines? [Y/N]"; validReturn = true; } if (validReturn == true) { // Get the confirmation of the user log.Info("Getting confirmation to delete"); await ReplyAsync(replyMessage); var response = await NextMessageAsync(); AdminCommands ac = new AdminCommands(); log.Debug("Immediately after"); if (ac.GetConfirmation(response.ToString()) == true) { log.Info("Deleting and logging messages..."); FileInteraction fi = new FileInteraction(); List <Messages> msgList = new List <Messages>(); // Make a new list to pass foreach (var item in message) { string lines; if (item.Attachments.Count > 0 && withName == true) { lines = "[" + item.Timestamp + "] " + "(" + item.Channel + ") " + item.Author + ": " + item.Content + "\n<" + item.Attachments.Count + " item(s) attached>"; fi.Logged(lines, filename); } else if (item.Attachments.Count == 0 && withName == true) { lines = "[" + item.Timestamp + "] " + "(" + item.Channel + ") " + item.Author + ": " + item.Content; fi.Logged(lines, filename); } else if (item.Attachments.Count > 0 && withName == false) { lines = "[" + item.Timestamp + "] " + "(" + item.Channel + ") " + item.Author + ": " + item.Content + "\n<" + item.Attachments.Count + " item(s) attached>"; fi.Logged(lines); } else { lines = "[" + item.Timestamp + "] " + "(" + item.Channel + ") " + item.Author + ": " + item.Content; fi.Logged(lines); } if (item.Content.Contains("Deletion log") && item.Author.IsBot == true) { log.Debug("Ignoring bot message"); } else if (item.Author.IsBot == true) { log.Debug("Ignoring bot message"); await item.DeleteAsync(); } else { msgList.Add(new Messages(item.Author.ToString(), item.Timestamp.ToString(), item.Content)); // Add to the list await item.DeleteAsync(); await Task.Delay(100); } } if (withName == true) { string location = @"C:\Users\Amagi\source\repos\EimiBot\EimiBot2\logs\" + fi.GetDate() + "-deletionlogs - " + filename + ".txt"; await Context.Channel.SendFileAsync(location, "Deletion log for " + fi.GetTimestamp() + ": " + filename); } else { string location = @"C:\Users\Amagi\source\repos\EimiBot\EimiBot2\logs\" + fi.GetDate() + "-deletionlogs.txt"; await Context.Channel.SendFileAsync(location, "Deletion log for " + fi.GetTimestamp()); } SheetsInteraction si = new SheetsInteraction(); log.Debug(si.UpdateTab(filename)); log.Debug(si.EditData(msgList)); log.Debug(si.AutoResize(filename)); } else { log.Info("No messages deleted and logged."); await ReplyAsync("Will not delete messages."); } } }