public async Task Issue35_DatesReturningAs1DayBefore() { ICard card = null; try { TrelloAuthorization.Default.AppKey = TrelloIds.AppKey; var learningBoard = _factory.Board(TrelloIds.BoardId); await learningBoard.Lists.Refresh(); var list = learningBoard.Lists.First(); var member = list.Board.Members.First(); card = await list.Cards.Add("test card 2"); card.DueDate = new DateTime(2016, 07, 21); await TrelloProcessor.Flush(); var cardCopy = _factory.Card(card.Id); Assert.AreEqual(new DateTime(2016, 07, 21), cardCopy.DueDate); } finally { card?.Delete(); } }
public async Task TestMethod1() { await Run(async ct => { var card = _factory.Card(TrelloIds.CardId); await card.Refresh(ct); await card.Refresh(ct); Console.WriteLine(card); }); }
public async Task CardProcessesWebhook() { List <string> properties = null; try { var cardData = "{\"id\":\"5a72b7ab3711a44643c5ed49\",\"badges\":{\"votes\":0,\"attachmentsByType\":{\"trello\":{\"board\":0,\"card\":0}},\"viewingMemberVoted\":false,\"subscribed\":false,\"fogbugz\":\"\",\"checkItems\":2,\"checkItemsChecked\":1,\"comments\":1,\"attachments\":1,\"description\":true,\"due\":null,\"dueComplete\":false},\"checkItemStates\":[{\"idCheckItem\":\"5aa7a08854b35d7eb0c497db\",\"state\":\"complete\"}],\"closed\":false,\"dueComplete\":false,\"dateLastActivity\":\"2018-05-19T00:06:58.640Z\",\"desc\":\"the original description\",\"descData\":{\"emoji\":{}},\"due\":null,\"email\":null,\"idBoard\":\"51478f6469fd3d9341001dae\",\"idChecklists\":[\"5aa7a081fa623ac86b7856e1\"],\"idList\":\"51478f6469fd3d9341001daf\",\"idMembers\":[\"50b693ad6f122b4310000a3c\"],\"idMembersVoted\":[],\"idShort\":1344,\"idAttachmentCover\":\"5a72b801baac36a68ea5c10b\",\"labels\":[{\"id\":\"5475f8a629b56a928f0b20fa\",\"idBoard\":\"51478f6469fd3d9341001dae\",\"name\":\"Colorless Label\",\"color\":null},{\"id\":\"545b37fa74d650d567d4c15a\",\"idBoard\":\"51478f6469fd3d9341001dae\",\"name\":\"orange\",\"color\":\"orange\"},{\"id\":\"54737da6c22a888c1f5bfa7e\",\"idBoard\":\"51478f6469fd3d9341001dae\",\"name\":\"Other Blue Label\",\"color\":\"blue\"}],\"idLabels\":[\"54737da6c22a888c1f5bfa7e\",\"5475f8a629b56a928f0b20fa\",\"545b37fa74d650d567d4c15a\"],\"manualCoverAttachment\":false,\"name\":\"Card\",\"pos\":163839.5,\"shortLink\":\"3rm0AZg5\",\"shortUrl\":\"https://trello.com/c/3rm0AZg5\",\"subscribed\":false,\"url\":\"https://trello.com/c/3rm0AZg5/1344-card\"}"; var webhookData = "{\"model\":{\"id\":\"5a72b7ab3711a44643c5ed49\",\"badges\":{\"votes\":0,\"attachmentsByType\":{\"trello\":{\"board\":0,\"card\":0}},\"viewingMemberVoted\":false,\"subscribed\":false,\"fogbugz\":\"\",\"checkItems\":2,\"checkItemsChecked\":1,\"comments\":1,\"attachments\":1,\"description\":true,\"due\":null,\"dueComplete\":false},\"checkItemStates\":[{\"idCheckItem\":\"5aa7a08854b35d7eb0c497db\",\"state\":\"complete\"}],\"closed\":false,\"dueComplete\":false,\"dateLastActivity\":\"2018-05-19T00:06:58.640Z\",\"desc\":\"changing the description to trigger a webhook\\n\",\"descData\":{\"emoji\":{}},\"due\":null,\"email\":null,\"idBoard\":\"51478f6469fd3d9341001dae\",\"idChecklists\":[\"5aa7a081fa623ac86b7856e1\"],\"idList\":\"51478f6469fd3d9341001daf\",\"idMembers\":[\"50b693ad6f122b4310000a3c\"],\"idMembersVoted\":[],\"idShort\":1344,\"idAttachmentCover\":\"5a72b801baac36a68ea5c10b\",\"labels\":[{\"id\":\"5475f8a629b56a928f0b20fa\",\"idBoard\":\"51478f6469fd3d9341001dae\",\"name\":\"Colorless Label\",\"color\":null},{\"id\":\"545b37fa74d650d567d4c15a\",\"idBoard\":\"51478f6469fd3d9341001dae\",\"name\":\"orange\",\"color\":\"orange\"},{\"id\":\"54737da6c22a888c1f5bfa7e\",\"idBoard\":\"51478f6469fd3d9341001dae\",\"name\":\"Other Blue Label\",\"color\":\"blue\"}],\"idLabels\":[\"54737da6c22a888c1f5bfa7e\",\"5475f8a629b56a928f0b20fa\",\"545b37fa74d650d567d4c15a\"],\"manualCoverAttachment\":false,\"name\":\"Card\",\"pos\":163839.5,\"shortLink\":\"3rm0AZg5\",\"shortUrl\":\"https://trello.com/c/3rm0AZg5\",\"subscribed\":false,\"url\":\"https://trello.com/c/3rm0AZg5/1344-card\"},\"action\":{\"id\":\"5aff6aa258f856835962fd6f\",\"idMemberCreator\":\"50b693ad6f122b4310000a3c\",\"data\":{\"list\":{\"name\":\"List\",\"id\":\"51478f6469fd3d9341001daf\"},\"board\":{\"shortLink\":\"VHHdzCU0\",\"name\":\"Sandbox\",\"id\":\"51478f6469fd3d9341001dae\"},\"card\":{\"shortLink\":\"3rm0AZg5\",\"idShort\":1344,\"name\":\"Card\",\"id\":\"5a72b7ab3711a44643c5ed49\",\"desc\":\"changing the description to trigger a webhook\\n\"},\"old\":{\"desc\":\"a description\"}},\"type\":\"updateCard\",\"date\":\"2018-05-19T00:06:58.644Z\",\"limits\":{},\"display\":{\"translationKey\":\"action_changed_description_of_card\",\"entities\":{\"card\":{\"type\":\"card\",\"desc\":\"changing the description to trigger a webhook\\n\",\"id\":\"5a72b7ab3711a44643c5ed49\",\"shortLink\":\"3rm0AZg5\",\"text\":\"Card\"},\"memberCreator\":{\"type\":\"member\",\"id\":\"50b693ad6f122b4310000a3c\",\"username\":\"gregsdennis\",\"text\":\"Greg Dennis\"}}},\"memberCreator\":{\"id\":\"50b693ad6f122b4310000a3c\",\"avatarHash\":\"cfd323494c6c01459001e53c35e88e41\",\"avatarUrl\":\"https://trello-avatars.s3.amazonaws.com/cfd323494c6c01459001e53c35e88e41\",\"fullName\":\"Greg Dennis\",\"initials\":\"GSD\",\"username\":\"gregsdennis\"}}}"; MockHost.MockRest <IJsonCard>(cardData); var card = _factory.Card(TrelloIds.CardId); await card.Refresh(); card.Updated += (c, list) => properties = list.ToList(); TrelloProcessor.ProcessNotification(webhookData); properties.Count.Should().Be(1); properties.Should().Contain(new[] { "Description" }); } finally { if (properties != null) { Console.WriteLine(string.Join("\n", properties)); } MockHost.ResetRest(); TrelloConfiguration.Cache.Clear(); } }
static async System.Threading.Tasks.Task Main(string[] args) { string SQLPRoofDate; ArrayList JobDetails = new ArrayList(); bool done = false; try { do { Console.WriteLine("Enter Pace Job Number"); string jn = Console.ReadLine(); int i = 0; JobDetails.Clear(); var connString = "Host=6.1.1.13;Username=epace_read;Password=epace;Database=epace"; // ** Connection Details ** // //var conn1 = @"Data Source=AG00072\SQLEXPRESS; Database=TrelloJobs; Connection Timeout=30;Integrated Security=SSPI;"; using (var conn = new NpgsqlConnection(connString)) { conn.Open(); // ** Connection string ** // using (var cmd = new NpgsqlCommand("SELECT job.ccmasterid, job.amounttoinvoice, Customer.arcustname, job.ccdescription, job.ccscheduledshipdate, jobpart.ccact2date FROM job INNER Join customer ON job.armasterid = customer.armasterid INNER Join jobpart ON job.ccmasterid = jobpart.ccmasterid WHERE job.ccmasterid =" + jn, conn)) using (NpgsqlDataReader reader = cmd.ExecuteReader()) while (JobDetails.Count < 5) { while (reader.Read()) //Loop through SQL reader // { switch (JobDetails.Count) { case 0: JobDetails.Add(reader[0]); JobDetails.Add(reader[1]); JobDetails.Add(reader[2]); JobDetails.Add(reader[3]); JobDetails.Add(reader[4]); break; case 5: JobDetails.Clear(); JobDetails.Insert(0, reader[0]); JobDetails.Insert(1, reader[1]); JobDetails.Insert(2, reader[2]); JobDetails.Insert(3, reader[3]); JobDetails.Insert(4, reader[4]); break; } if (reader.GetValue(5).ToString() != "") { JobDetails.Add(reader[5]); // Proof Date // } } } } //using (var conn2 = new SqlConnection(conn1)) // { // conn2.Open(); if (JobDetails.Count == 5) { SQLPRoofDate = "N/A"; } else { SQLPRoofDate = JobDetails[5].ToString(); } // using (var cmdd = new SqlCommand("INSERT INTO Jobs VALUES ('" + JobDetails[0] + "','" + JobDetails[2] + "','" + JobDetails[3] + "','" + SQLPRoofDate + "','To Start','" + JobDetails[4] + "')", conn2)) // using (SqlDataReader r1 = cmdd.ExecuteReader()) ; TrelloAuthorization.Default.AppKey = "234d8eb40d3f3133b0812df057f7bdc3"; // Trello API key // TrelloAuthorization.Default.UserToken = "0e956ba7f0000d7ca7db8504e58a3301d45102e400297f230bfbdda2acc30e1e"; // Trello UserToken // ITrelloFactory factory = new TrelloFactory(); // Get Trello board using board ID// var board = factory.Board("5db19603e4428377d77963b1"); await board.Refresh(); var TDList = factory.List("5db19603e4428377d77963b2"); await TDList.Refresh(); var newCard = TDList.Cards.Add(JobDetails[0].ToString().Trim() + " - " + JobDetails[2].ToString().Trim()); var Card = factory.Card(newCard.Result.Id); Card.DueDate = (DateTime)JobDetails[4]; var desc = board.CustomFields.FirstOrDefault(f => f.Name == ":."); var field = desc.SetValueForCard(Card, JobDetails[3].ToString()); if (JobDetails.Count == 6) { var ProofDate = board.CustomFields.FirstOrDefault(f => f.Name == "Proof Date"); var field1 = ProofDate.SetValueForCard(Card, (DateTime)JobDetails[5]); } await Card.Refresh(); await Card.Labels.Refresh(); Console.WriteLine("Type N to input another Job Number or X to Exit"); var e = Console.ReadLine(); if (e == "X") { done = true; } } while (done != true); } catch (IndexOutOfRangeException e) { Console.WriteLine(e); } }
async void items_ItemAddAsync(object Item) { bool test = false; var cardid = ""; var LID = ""; string jnum = ""; int i = 0; var cardindex = ""; try { Outlook.MailItem mail = (Outlook.MailItem)Item; TrelloAuthorization.Default.AppKey = "234d8eb40d3f3133b0812df057f7bdc3"; // Trello API key // TrelloAuthorization.Default.UserToken = "0e956ba7f0000d7ca7db8504e58a3301d45102e400297f230bfbdda2acc30e1e"; // Trello UserToken // ITrelloFactory factory = new TrelloFactory(); // Get Trello board using board ID// var board = factory.Board("5db19603e4428377d77963b1"); await board.Refresh(); var TDList = factory.List("5db19603e4428377d77963b2"); //var TList = factory.List(""); await TDList.Refresh(); var Start = mail.Subject.IndexOf("t").ToString(); jnum = mail.Subject.Substring(int.Parse(Start) + 1, 7); string[] ListID = new string[3]; // ListID[0] = "5db19603e4428377d77963b2"; //To Start Board ID ListID[1] = "5db19603e4428377d77963b3"; // On Proof Board ID ListID[2] = "5db19603e4428377d77963b4"; // Signed Off Board ID //board = TDList.Contains("255705"); // find Card string query = jnum; var search = factory.Search(query, 1, SearchModelType.Cards, new IQueryable[] { board }); await search.Refresh(); var CardList = search.Cards.ToList(); foreach (var card in CardList) { string tName = card.Name.Substring(0, 6); if (tName == jnum.Trim()) { cardid = card.Id; } } var FoundCard = factory.Card(cardid); string FoundListid = FoundCard.List.Id; var fromlist = factory.List(FoundListid); Person p1 = new Person(); p1.Name = "Shaun"; //var FoundList = board.Lists.FirstOrDefault(l => l.Name == "Swim Lane"); if (Item != null) { if (mail.Body.ToUpper().Contains("Approved for Print".ToUpper())) { //var ToList = factory.List("5db19603e4428377d77963b4"); var ToList = board.Lists.FirstOrDefault(l => l.Name == "Signed Off"); FoundCard.List = ToList; // from on proof //MessageBox.Show("Approved for Print"); } else if (mail.Body.ToUpper().Contains("Awaiting Review".ToUpper())) { //var ToList = factory.List("5db19603e4428377d77963b3"); var ToList = board.Lists.FirstOrDefault(l => l.Name == "On Proof"); FoundCard.List = ToList; // from in progress or to start // MessageBox.Show("Awaiting Review"); } else if (mail.Body.ToUpper().Contains("Amends".ToUpper())) { var ToList = factory.List("5dc9442eb245e60a39b3d4a7"); FoundCard.List = ToList; // from on proof //MessageBox.Show("Amends"); } else { // non job mail } } } catch (Exception e) { //MessageBox.Show(e.Message); } }