private void SetupDefaultServices(CompositionContainer mefContainer) { if (mefContainer.GetExportedValueOrDefault <IResponseParser>() == null) { mefContainer.ComposeExportedValue <IResponseParser>(new ResponseParser()); } if (mefContainer.GetExportedValueOrDefault <IBotServices>() == null) { mefContainer.ComposeExportedValue <IBotServices>(new SlackSendQueueService()); } if (mefContainer.GetExportedValueOrDefault <IBotState>() == null) { mefContainer.ComposeExportedValue <IBotState>(new BotState()); } if (mefContainer.GetExportedValueOrDefault <ISlackApi>() == null) { mefContainer.ComposeExportedValue <ISlackApi>(SlackApi.Create(this.apiKey)); } if (mefContainer.GetExportedValueOrDefault <IBackOffStrategy>() == null) { mefContainer.ComposeExportedValue <IBackOffStrategy>(new BackOffRetry()); } if (mefContainer.GetExportedValueOrDefault <ILog>() == null) { mefContainer.ComposeExportedValue <ILog>(LogManager.GetLogger(typeof(ISlackBot))); } }
public void CreatesWithDefaultRequestHandler() { var subject = SlackApi.Create("xxx"); Assert.NotNull(subject); Assert.NotNull(subject.Api); Assert.NotNull(subject.Auth); Assert.NotNull(subject.Channels); Assert.NotNull(subject.Chat); Assert.NotNull(subject.Emoji); Assert.NotNull(subject.Files); Assert.NotNull(subject.Groups); Assert.NotNull(subject.Im); Assert.NotNull(subject.Oauth); Assert.NotNull(subject.Reactions); Assert.NotNull(subject.Rtm); Assert.NotNull(subject.Search); Assert.NotNull(subject.Stars); Assert.NotNull(subject.Team); Assert.NotNull(subject.Users); }
public void CreatesWithProvidedRequestHandler() { var requestHandler = new Mock <IRequestHandler>(); var subject = SlackApi.Create(requestHandler.Object); Assert.NotNull(subject); Assert.NotNull(subject.Api); Assert.NotNull(subject.Auth); Assert.NotNull(subject.Channels); Assert.NotNull(subject.Chat); Assert.NotNull(subject.Emoji); Assert.NotNull(subject.Files); Assert.NotNull(subject.Groups); Assert.NotNull(subject.Im); Assert.NotNull(subject.Oauth); Assert.NotNull(subject.Reactions); Assert.NotNull(subject.Rtm); Assert.NotNull(subject.Search); Assert.NotNull(subject.Stars); Assert.NotNull(subject.Team); Assert.NotNull(subject.Users); }
private static void Main(string[] args) { Console.WriteLine("Are you sure you want to continue? This will delete all your slack files [Y/N]", Color.Green); var key = Console.ReadLine(); if (key != "Y" && key != "N") { Console.WriteLine("Value does not match options. Your options are Y / N", Color.Red); Console.WriteLine("Press any key to exit...", Color.Red); Console.ReadKey(); return; } if (key == "N") { Console.WriteLine("You chose not to continue", Color.Red); Console.WriteLine("Press any key to exit...", Color.Red); Console.ReadKey(); return; } Console.WriteLine("Paste your slack api key please.", Color.Green); Console.WriteLine("Your api key can be obtained by requesting a token with the legacy token generator", Color.Yellow); Process.Start(LegacyTokenGeneratorUrl); var apiKey = Console.ReadLine(); if (string.IsNullOrEmpty(apiKey)) { Console.WriteLine("You didn't paste anything", Color.Red); Console.WriteLine("Press any key to exit... ", Color.Red); Console.ReadKey(); return; } var slackApi = SlackApi.Create(apiKey); var whoAmI = slackApi.Auth.Test(); if (!whoAmI.Ok) { Console.WriteLine("Api key you passed does not work", Color.Red); Console.WriteLine("Press any key to exit...", Color.Red); Console.ReadKey(); return; } Console.WriteLine("You are: {0}. Continue deleting your files? [Y/N]", whoAmI.User, Color.Green); key = Console.ReadLine(); if (key != "Y" && key != "N") { Console.WriteLine("Value does not match options. Your options are Y / N", Color.Red); Console.WriteLine("Press any key to exit...", Color.Red); Console.ReadKey(); return; } if (key == "N") { Console.WriteLine("You chose not to continue", Color.Red); Console.WriteLine("Press any key to exit... ", Color.Red); Console.ReadKey(); return; } var myfiles = slackApi.Files.List(new FilesListRequest { User = whoAmI.UserId, }); if (!myfiles.Ok) { Console.WriteLine("Could not access you files list", Color.Red); Console.WriteLine("Press any key to exit...", Color.Red); Console.ReadKey(); return; } if (myfiles.Files.Count == 0) { Console.WriteLine("You don't have any files", Color.Green); } else { Console.WriteLine("You have {0} files. Proceed deleting them", myfiles.Files.Count, Color.Yellow); var error = 0; foreach (var file in myfiles.Files) { Console.WriteLine("Deleting {0}", file.Name, Color.Green); try { slackApi.Files.Delete(file.Id); } catch { Console.WriteLine("Could not delete {0}", file.Name, Color.Red); error++; } } if (error == 0) { Console.WriteLine("All your files were erased", Color.Green); } else { var remainingFiles = slackApi.Files.List(new FilesListRequest { User = whoAmI.UserId, }); Console.WriteLine("Some files could not be removed:", Color.Red); if (remainingFiles.Ok) { foreach (var file in remainingFiles.Files) { Console.WriteLine(file.Name, Color.Red); } } } } Console.WriteLine("Press any key to exit...", Color.Yellow); Console.ReadKey(); }