// // to get your user token // public static void Main(string[] args) { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new RestSharpClientProvider(); TrelloAuthorization.Default.AppKey = Auth.AppKey; TrelloAuthorization.Default.UserToken = Auth.UserToken; var board = new Board("tj9zKDV4"); var list = board.Lists.Single (l => l.Name == "Ready"); var readyCards = list.Cards; var page = new Page (); page.Ideas = readyCards.Select (c => new Idea { Area = c.Labels.First (l => l.Color != LabelColor.Orange).Name, Difficulty = c.Labels.First (l => l.Color == LabelColor.Orange).Name.Split (' ').Last (), Title = c.Name, Mentors = string.Join (", ", c.Members.Select (m => m.FullName)), Description = c.Description }).GroupBy (i => i.Area).ToDictionary (g => g.Key, g => (IEnumerable<Idea>)g); Console.WriteLine (page.TransformText ()); }
public async Task Issue32_CancelPendingRequests() { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = TrelloIds.AppKey; TrelloAuthorization.Default.UserToken = TrelloIds.UserToken; TrelloProcessor.ConcurrentCallCount = 1; var cards = new List <Card> { new Card("KHKms82H"), new Card("AgTd8qhF"), new Card("R1Kc5KHd"), new Card("vlgbqJES"), new Card("uVD9TAIK"), new Card("prSr36Ny"), new Card("hBoTLb9V"), }; var nameTasks = cards.Select(c => Task.Run(() => c.Name)).ToList(); TrelloProcessor.CancelPendingRequests(); var names = await Task.WhenAll(nameTasks); Assert.AreEqual(0, names.Count(n => n != null)); }
public bool ExecuteProcess() { var settings = GetSettings(typeof(TrelloReportSettings)) as TrelloReportSettings; var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = settings.TrelloAppKey; TrelloAuthorization.Default.UserToken = settings.TrelloUserToken; var organization = new Organization(settings.OrganizationID); var report = new Report(organization, settings.CountLastListCardsAsCompleted); var subject = $"Отчет Trello от {DateTime.Now.ToLocalTime().ToLongDateString()} { DateTime.Now.ToLocalTime().ToLongTimeString()}"; if (string.IsNullOrEmpty(settings.AddressToSendReport)) { ReportMailSender.SendReportMail(subject, report.GetReport().ToString()); } else { ReportMailSender.SendMail(settings.AddressToSendReport, subject, report.GetReport().ToString()); } return(true); }
public void Issue59_EditComments() { Card card = null; var name = "edit comment test"; try { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = TrelloIds.AppKey; TrelloAuthorization.Default.UserToken = TrelloIds.UserToken; TrelloConfiguration.ExpiryTime = TimeSpan.FromSeconds(1); var list = new List(TrelloIds.ListId); card = list.Cards.Add(name); var comment = card.Comments.Add("This is a comment"); comment.Data.Text = "This comment was changed."; Thread.Sleep(5); TrelloProcessor.Flush(); } finally { card?.Delete(); } }
public void Issue35_DatesReturningAs1DayBefore() { Card card = null; try { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = TrelloIds.AppKey; TrelloAuthorization.Default.UserToken = TrelloIds.UserToken; var learningBoard = new Board(TrelloIds.BoardId); string listId = learningBoard.Lists.First().Id; var list = new List(listId); var member = list.Board.Members.First(); card = list.Cards.Add("test card 2"); card.DueDate = new DateTime(2016, 07, 21); TrelloProcessor.Flush(); var cardCopy = new Card(card.Id); Assert.AreEqual(new DateTime(2016, 07, 21), cardCopy.DueDate); } finally { card?.Delete(); } }
public async Task Issue33_CardsNotDownloading() { //json, REST and trello setup var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new RestSharpClientProvider(); //app key and token, user required to enter token TrelloAuthorization.Default.AppKey = "440a184b181002cf00f63713a7f51191"; TrelloAuthorization.Default.UserToken = "dfd8dd877fa1775db502f891370fb26882a4d8bad41a1cc8cf1a58874b21322b"; TrelloConfiguration.ThrowOnTrelloError = true; Console.WriteLine(Member.Me); var boardID = "574e95edd8a4fc16207f7079"; var board = new Board(boardID); Console.WriteLine(board); //here is where it calls the exception with 'invalid id' foreach (var card in board.Cards) { Console.WriteLine(card); } }
public void Issue26_NotificationTypeCardDueSoonNotDeserializing() { var text = "{\"id\":\"571ca99c1aa4fb7e9e30bb0b\",\"unread\":false,\"type\":\"cardDueSoon\",\"date\":\"2016-04-24T11:10:19.997Z\",\"data\":{\"board\":{\"name\":\"Team\",\"id\":\"5718d772857c2a4b2a2befb8\"},\"card\":{\"due\":\"2016-04-25T11:00:00.000Z\",\"shortLink\":\"f5sdWFLT\",\"idShort\":19,\"name\":\"AS MRC Training\",\"id\":\"570e55eb131202e342f205ad\"}},\"idMemberCreator\":null}"; var serializer = new ManateeSerializer(); var expected = new ManateeNotification { Id = "571ca99c1aa4fb7e9e30bb0b", Unread = false, Type = NotificationType.CardDueSoon, Date = DateTime.Parse("2016-04-24T11:10:19.997Z"), Data = new ManateeNotificationData { Board = new ManateeBoard { Name = "Team", Id = "5718d772857c2a4b2a2befb8" }, Card = new ManateeCard { Due = DateTime.Parse("2016-04-25T11:00:00.000Z"), ShortUrl = "f5sdWFLT", IdShort = 19, Name = "AS MRC Training", Id = "570e55eb131202e342f205ad" } }, MemberCreator = null }; var actual = serializer.Deserialize <IJsonNotification>(text); Assert.IsTrue(TheGodComparer.Instance.Equals(expected, actual)); }
/// <summary> /// Metodo para crear una tarjeta en una lista de Trello /// </summary> /// <param name="ex">Excepcion desde la que se crea el Issue</param> private static void CreateCardOnTrello(Exception ex) { try { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = "d40bd5f52fc8890e76d2f46ad995ce45"; TrelloAuthorization.Default.UserToken = "899b39d4a2fa6817263e1b37d239ffc123909c87f22a5fabec82b71821702823"; //Obtenemos el Board var board = new Board(TRELLO_BOARD); //Obtenemos la lista var listaToDo = board.Lists[TRELLO_LIST]; if (listaToDo != null) { //Agregamos nueva tarjeta var nuevo = listaToDo.Cards.Add(ex.Message, description: CrearIssueBody(ex), dueDate: DateTime.Now.AddDays(2), members: new [] { board.Members[0] }, labels: new[] { board.Labels[1] }); } } catch (Exception e) { //ignored } }
// // to get your user token // public static void Main(string[] args) { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = Auth.AppKey; TrelloAuthorization.Default.UserToken = Auth.UserToken; var board = new Board("tj9zKDV4"); var list = board.Lists.Single(l => l.Name == "Ready"); var readyCards = list.Cards; var page = new Page { Ideas = readyCards.Select(CardToIdea) .GroupBy(i => i.Area) .ToDictionary(g => g.Key, g => ((IEnumerable <Idea>)g).OrderBy(i => i.Title).ToList()) }; var text = page.TransformText(); Console.WriteLine(text); var file = Path.Combine(Path.GetDirectoryName(typeof(Program).Assembly.Location), "page.md"); File.WriteAllText(file, text); }
public void CardCreationDateTest() { TrelloServiceConfiguration.ThrowOnTrelloError = false; var serializer = new ManateeSerializer(); TrelloServiceConfiguration.Serializer = serializer; TrelloServiceConfiguration.Deserializer = serializer; TrelloServiceConfiguration.RestClientProvider = new RestSharpClientProvider(); var auth = new TrelloAuthorization(TrelloIds.AppKey, TrelloIds.UserToken); var service = new TrelloService(auth); var list = service.Retrieve <List>(TrelloIds.ListId); foreach (var action in list.Actions) { Console.WriteLine(action); } var me = service.Me; foreach (var action in me.Actions) { Console.WriteLine(action); } }
public void Issue37_InconsistentDateEncoding() { Card card = null; try { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = TrelloIds.AppKey; TrelloAuthorization.Default.UserToken = TrelloIds.UserToken; var list = new List(TrelloIds.ListId); card = list.Cards.Add("date encoding test"); // 2016-12-08T04:45:00.000Z var date = Convert.ToDateTime("8/12/2016 5:45:00PM"); card.DueDate = date; TrelloProcessor.Flush(); } finally { card?.Delete(); } }
public void Issue45_DueDateAsMinValue() { Card card = null; try { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = TrelloIds.AppKey; TrelloAuthorization.Default.UserToken = TrelloIds.UserToken; var list = new List(TrelloIds.ListId); card = list.Cards.Add("min date test"); card.Description = "a description"; card.DueDate = DateTime.MinValue; TrelloProcessor.Flush(); } finally { card?.Delete(); } }
public static void Run(string appKey, string userToken, TrelloCommand command, IList <string> commandParameters) { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = appKey; TrelloAuthorization.Default.UserToken = userToken; var boardName = commandParameters[0]; var board = Member.Me.Boards.First(x => string.Equals(x.Name, boardName, StringComparison.Ordinal)); var card = board.Cards.First(x => string.Equals(x.Name, "BURNDOWN CHART", StringComparison.Ordinal)); switch (command) { case TrelloCommand.GetBurndownChartData: var text = card.Description; Console.Write(text); break; case TrelloCommand.PutBurndownChart: var file = commandParameters.Count > 1 ? commandParameters[1] : null; byte[] fileData; using (var stream = file == null ? Console.OpenStandardInput() : new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read)) { if (stream.CanSeek) { fileData = new byte[stream.Length]; stream.Read(fileData, 0, fileData.Length); } else { fileData = new byte[0]; var buffer = new byte[2048]; while (true) { var readed = stream.Read(buffer, 0, buffer.Length); if (readed == 0) { break; } var newData = new byte[fileData.Length + readed]; fileData.CopyTo(newData, 0); Array.Copy(buffer, 0, newData, fileData.Length, readed); fileData = newData; } } } foreach (var a in card.Attachments.ToArray()) { a.Delete(); } card.Attachments.Add(fileData, "burndown.png"); break; default: throw new InvalidOperationException(); } }
public TrellexaSpeechlet() { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = "TODO Set Trello App Key"; //TrelloAuthorization.Default.UserToken = "TODO Set Trello User Token for testing"; }
public static void Configure(string appKey = "", string userToken = "") { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); if (!string.IsNullOrWhiteSpace(appKey)) TrelloAuthorization.Default.AppKey = appKey; if (!string.IsNullOrWhiteSpace(userToken)) TrelloAuthorization.Default.UserToken = userToken; }
public void Setup() { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = TrelloIds.AppKey; TrelloAuthorization.Default.UserToken = "0f3f5a4039c992dabcf82fd1daa4ed12590eeb6407635c0f8da7518af1721498"; }
private static void Initialize() { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = "0b27c6aa5adb2a59af4260e014de24d8"; TrelloAuthorization.Default.UserToken = "3b18fd40230e3a4be83f2e1dca58101bfbd1325560a9c500794083f0eb52077e"; TrelloConfiguration.ExpiryTime = TimeSpan.FromSeconds(0.5); }
public virtual void Initialize(CredentialStore credentialStore) { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); Auth.AppKey = credentialStore["TrelloAppKey"]; Auth.UserToken = credentialStore["TrelloUserToken"]; }
static void Main(string[] args) { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = ""; TrelloAuthorization.Default.UserToken = ""; var powerUpData = new CustomFieldsPowerUp(); }
public SupportApi(IRepository<SupportTicket, SupportTicketDataModel, Guid> supportTicketRepository, ISupportTicketMapper supportTicketMapper) { this.supportTicketRepository = supportTicketRepository; this.supportTicketMapper = supportTicketMapper; var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = "f179fdf3799a9e5b7239b88963268f98"; TrelloAuthorization.Default.UserToken = "0bc833ffc2b77959f6707d1e6ef56724f76ef748f150836d0d4654feb62c270c"; }
/// <summary> /// /// 1* Dev Key /// https://trello.com/app-key /// /// 2* Approve app Name = TrelloForDB1 /// https://trello.com/1/connect?key=DEV_KEY_GENERATE_FIRST_PROCESS&name=TrelloForDB1&response_type=token&scope=read,write /// /// 3* TESTE /// https://trello.com/1/members/my/cards?key=DEV_KEY_GENERATE_FIRST_PROCESS&token=TOKEN_GENERATE_SECOND_PROCESS /// /// </summary> /// <param name="args">cardId, TitleToModified</param> static void Main(string[] args) { if ((args.Length == 1) && ((args[0].ToUpper().Contains("/H")) || (args[0].ToUpper().Contains("-H")))) { HelpSystem(); return; } else if (args.Length != 2) { System.Console.WriteLine("Argument not specified or invalid. See /help"); Console.ReadKey(); return; } cardID = args[0]; titleSearch = args[1]; var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new RestSharpClientProvider(); TrelloAuthorization.Default.AppKey = appKey; TrelloAuthorization.Default.UserToken = userToken; try { NewDescriptionBuild(); Console.WriteLine("Bing!!! Success!!!"); } catch (TrelloInteractionException trelloExcpetion) { Console.BackgroundColor = ConsoleColor.Red; Console.WriteLine("Trello :("); Console.WriteLine(""); Console.WriteLine(trelloExcpetion.InnerException.Message); } catch (Exception e) { Console.BackgroundColor = ConsoleColor.Red; Console.WriteLine("BUG: Oh ohhh!!"); Console.WriteLine(""); Console.WriteLine(e.Message); } Console.ReadKey(); }
public Form1() { InitializeComponent(); string appkey = "16dd83fb7ecf4ffcc19a19491674100f"; string secret = "bd1a0e9339cddaa21c64895ecdd8748880e7c49fde99da99d4e07f9e456f7615"; var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = appkey; TrelloAuthorization.Default.UserToken = secret; }
public static void Initialize() { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); XmlDocument doc = new XmlDocument(); doc.Load(@"secrets.xml"); TrelloAuthorization.Default.AppKey = doc.LastChild.FirstChild.InnerText; TrelloAuthorization.Default.UserToken = doc.LastChild.LastChild.InnerText; }
public void Issue84_ListNameNotDownloading() { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = TrelloIds.AppKey; TrelloAuthorization.Default.UserToken = TrelloIds.UserToken; TrelloConfiguration.ExpiryTime = TimeSpan.FromSeconds(1); var list = new List(TrelloIds.ListId); Assert.IsNotNull(list.Name); }
private static void Run(Action action) { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new RestSharpClientProvider(); TrelloAuthorization.Default.AppKey = TrelloIds.AppKey; TrelloAuthorization.Default.UserToken = TrelloIds.UserToken; TrelloConfiguration.ThrowOnTrelloError = true; action(); }
private static void Run(System.Action action) { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = TrelloIds.AppKey; TrelloAuthorization.Default.UserToken = TrelloIds.UserToken; action(); TrelloProcessor.Flush(); }
public void Issue60_BoardPreferencesFromSearch() { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = TrelloIds.AppKey; TrelloAuthorization.Default.UserToken = TrelloIds.UserToken; TrelloConfiguration.ExpiryTime = TimeSpan.FromSeconds(1); var search = new Search(SearchFor.TextInName("Sandbox"), 1, SearchModelType.Boards); var board = search.Boards.FirstOrDefault(); Assert.IsNotNull(board.Preferences.Background.Color); }
public void WebhookForBoardGeneratingWebException() { TrelloServiceConfiguration.ThrowOnTrelloError = false; var serializer = new ManateeSerializer(); TrelloServiceConfiguration.Serializer = serializer; TrelloServiceConfiguration.Deserializer = serializer; TrelloServiceConfiguration.RestClientProvider = new RestSharpClientProvider(); var auth = new TrelloAuthorization(TrelloIds.AppKey, TrelloIds.UserToken); var service = new TrelloService(auth); var board = service.Retrieve <Board>(TrelloIds.BoardId); var hook = board.CreateWebhook("http://requestb.in/1k36jm21"); Console.WriteLine(hook == null ? "null" : hook.IsActive.ToString()); }
public void AttachmentTest() { TrelloServiceConfiguration.ThrowOnTrelloError = false; var serializer = new ManateeSerializer(); TrelloServiceConfiguration.Serializer = serializer; TrelloServiceConfiguration.Deserializer = serializer; TrelloServiceConfiguration.RestClientProvider = new RestSharpClientProvider(); var auth = new TrelloAuthorization(TrelloIds.AppKey, TrelloIds.UserToken); var service = new TrelloService(auth); var list = service.Retrieve <List>(TrelloIds.ListId); var card = list.AddCard("Attachment Test"); card.AddAttachment("new attachment", TrelloIds.AttachmentUrl); }
static void Main(string[] args) { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = "062109670e7f56b88783721892f8f66f"; TrelloAuthorization.Default.UserToken = "eb16c70a145d75e5ef75bdbf465ee494ac4efca148e4efcfc41060c53beb450a"; var card = new Card("ar2EsVVg"); Console.WriteLine(card); Console.WriteLine(card.Description); Console.ReadLine(); }
public void Issue36_CardAttachmentByUrlThrows() { var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = TrelloIds.AppKey; TrelloAuthorization.Default.UserToken = TrelloIds.UserToken; var list = new List(TrelloIds.ListId); var card = list.Cards.Add("attachment test"); card.Attachments.Add("http://i.imgur.com/eKgKEOn.jpg", "me"); card.Delete(); }
public override void OnActionExecuting(ActionExecutingContext ctx) { var trelloToken = ctx.HttpContext.Session["TrelloToken"] as string; if (string.IsNullOrWhiteSpace(trelloToken)) { return; } var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new WebApiClientProvider(); TrelloAuthorization.Default.AppKey = ConfigurationManager.AppSettings["TrelloAppKey"]; TrelloAuthorization.Default.UserToken = trelloToken; }
public void TestBoardCardsExtensionMethod() { TrelloServiceConfiguration.ThrowOnTrelloError = false; var serializer = new ManateeSerializer(); TrelloServiceConfiguration.Serializer = serializer; TrelloServiceConfiguration.Deserializer = serializer; TrelloServiceConfiguration.RestClientProvider = new RestSharpClientProvider(); var auth = new TrelloAuthorization(TrelloIds.AppKey, TrelloIds.UserToken); var service = new TrelloService(auth); var me = service.Me; foreach (var card in me.AllCards()) { Console.WriteLine(card); } }
public override void Install(ModuleManager manager) { var client = manager.Client; var serializer = new ManateeSerializer(); TrelloConfiguration.Serializer = serializer; TrelloConfiguration.Deserializer = serializer; TrelloConfiguration.JsonFactory = new ManateeFactory(); TrelloConfiguration.RestClientProvider = new Manatee.Trello.WebApi.WebApiClientProvider(); TrelloAuthorization.Default.AppKey = NadekoBot.Creds.TrelloAppKey; //TrelloAuthorization.Default.UserToken = "[your user token]"; Discord.Channel bound = null; Board board = null; List<string> last5ActionIDs = null; t.Elapsed += async (s, e) => { try { if (board == null || bound == null) return; //do nothing if there is no bound board board.Refresh(); var cur5Actions = board.Actions.Take(board.Actions.Count() < 5 ? board.Actions.Count() : 5); var cur5ActionsArray = cur5Actions as Action[] ?? cur5Actions.ToArray(); if (last5ActionIDs == null) { last5ActionIDs = cur5ActionsArray.Select(a => a.Id).ToList(); return; } foreach (var a in cur5ActionsArray.Where(ca => !last5ActionIDs.Contains(ca.Id))) { await bound.Send("**--TRELLO NOTIFICATION--**\n" + a.ToString()); } last5ActionIDs.Clear(); last5ActionIDs.AddRange(cur5ActionsArray.Select(a => a.Id)); } catch (Exception ex) { Console.WriteLine("Timer failed " + ex.ToString()); } }; manager.CreateCommands("trello ", cgb => { cgb.AddCheck(PermissionChecker.Instance); cgb.CreateCommand("join") .Alias("j") .Description("Joins a server") .Parameter("code", Discord.Commands.ParameterType.Required) .Do(async e => { if (!NadekoBot.IsOwner(e.User.Id)) return; try { await (await client.GetInvite(e.GetArg("code"))).Accept(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }); cgb.CreateCommand("bind") .Description("Bind a trello bot to a single channel. " + "You will receive notifications from your board when something is added or edited." + "\n**Usage**: bind [board_id]") .Parameter("board_id", Discord.Commands.ParameterType.Required) .Do(async e => { if (!NadekoBot.IsOwner(e.User.Id)) return; if (bound != null) return; try { bound = e.Channel; board = new Board(e.GetArg("board_id").Trim()); board.Refresh(); await e.Channel.SendMessage("Successfully bound to this channel and board " + board.Name); t.Start(); } catch (Exception ex) { Console.WriteLine("Failed to join the board. " + ex.ToString()); } }); cgb.CreateCommand("unbind") .Description("Unbinds a bot from the channel and board.") .Do(async e => { if (!NadekoBot.IsOwner(e.User.Id)) return; if (bound == null || bound != e.Channel) return; t.Stop(); bound = null; board = null; await e.Channel.SendMessage("Successfully unbound trello from this channel."); }); cgb.CreateCommand("lists") .Alias("list") .Description("Lists all lists yo ;)") .Do(async e => { if (!NadekoBot.IsOwner(e.User.Id)) return; if (bound == null || board == null || bound != e.Channel) return; await e.Channel.SendMessage("Lists for a board '" + board.Name + "'\n" + string.Join("\n", board.Lists.Select(l => "**• " + l.ToString() + "**"))); }); cgb.CreateCommand("cards") .Description("Lists all cards from the supplied list. You can supply either a name or an index.") .Parameter("list_name", Discord.Commands.ParameterType.Unparsed) .Do(async e => { if (!NadekoBot.IsOwner(e.User.Id)) return; if (bound == null || board == null || bound != e.Channel || e.GetArg("list_name") == null) return; int num; var success = int.TryParse(e.GetArg("list_name"), out num); List list = null; if (success && num <= board.Lists.Count() && num > 0) list = board.Lists[num - 1]; else list = board.Lists.FirstOrDefault(l => l.Name == e.GetArg("list_name")); if (list != null) await e.Channel.SendMessage("There are " + list.Cards.Count() + " cards in a **" + list.Name + "** list\n" + string.Join("\n", list.Cards.Select(c => "**• " + c.ToString() + "**"))); else await e.Channel.SendMessage("No such list."); }); }); }