public async Task CleanUpLeftOverTestRuns() { var factory = new TrelloFactory(); var me = await factory.Me(); await me.Refresh(); await Task.WhenAll(me.Boards.Where(b => b.Name.StartsWith("TestBoard_")).Select(async b => { Console.WriteLine($"Deleting board {b}"); await b.Delete(); })); await Task.WhenAll(me.Boards.Where(b => b.Name.StartsWith("changed")).Select(async b => { Console.WriteLine($"Deleting board {b}"); await b.Delete(); })); await Task.WhenAll(me.Organizations.Where(o => o.DisplayName.StartsWith("TestOrg_")).Select(async o => { Console.WriteLine($"Deleting org {o}"); await o.Delete(); })); }
static async System.Threading.Tasks.Task Main(string[] args) { //Авторизация, для которой нужен ключ разработчика https://trello.com/app-key TrelloAuthorization.Default.AppKey = "16a605bc7686b56000bac3a0c88ad11c"; TrelloAuthorization.Default.UserToken = "09d5a1bef5a2aeb437e783d2e3a5066eea293750d98ab64a03a1c7cf335ccf27"; //Создание доски и подключение к нужно нам ITrelloFactory factory = new TrelloFactory(); var board = factory.Board("hYFRk7rz"); await board.Refresh(); //Обязательно, после загрузки данных var list = board.Lists.FirstOrDefault(); //Подключение к спискам (колонкам в Trello) await list.Refresh(); var card = list.Cards.FirstOrDefault(); //Подключение к карточкам await card.Refresh(); /*//Выводит название списков * foreach (var listq in board.Lists) * { * Console.WriteLine(listq); * await list.Refresh(); * Console.WriteLine(" "); * //Выводит название карточек первого списка*/ foreach (var cardq in list.Cards) { Console.WriteLine("[" + cardq.Id + "]"); Console.WriteLine("[" + cardq.Name + "]"); Console.WriteLine("[" + cardq.Description + "]"); Console.WriteLine("[" + cardq.CreationDate + "]"); } Console.WriteLine(" "); }
public async Task <List <TrelloBoard> > FindAll() { var ret = new List <TrelloBoard>(); try { var auth = new TrelloAuthorization { AppKey = _appKey, UserToken = _userToken }; var factory = new TrelloFactory(); var me = await factory.Me().ConfigureAwait(true); foreach (var board in me.Boards) { var t = new TrelloBoard { name = board.Name }; ret.Add(t); } } catch (TrelloInteractionException e) { var msg = e.Message; } return(ret); }
public void AuthTrello() { _auth = new TrelloAuthorization { AppKey = MainWindow.publicDataContext.UserInfo.trelloApiKey, UserToken = MainWindow.publicDataContext.UserInfo.trelloToken }; _factory = new TrelloFactory(); }
public async Task loadTrelloAsync() { if (authDone) { TrelloFactory factory = new TrelloFactory(); var board = factory.Board(boardId, authData); await board.Refresh(); btnBrdName.Text = board.Name; var lists = board.Lists; for (int i = 0; i < lists.Count(); i++) { TabPage page = new TabPage(); page.Text = lists[i].Name; page.Tag = i.ToString(); tcLists.TabPages.Add(page); await lists[i].Refresh(); rowCol c = new rowCol(); c.nameOfList = lists[i].Name; c.row = 0; c.col = 0; coord.Add(c); var cards = lists[i].Cards; if (cards.Count() > 0) { for (int j = 0; j < cards.Count(); j++) { Button task = new Button(); task.Text = cards[j].Name; task.MinimumSize = new Size(360, 80); if (80 * coord[i].row + 3 < tcLists.Size.Height - 80) { task.Location = new Point(360 * coord[i].col + 3, 80 * coord[i].row + 3); coord[i].row++; } else { coord[i].col++; coord[i].row = 0; task.Location = new Point(360 * coord[i].col + 3, 80 * coord[i].row + 3); } task.AutoEllipsis = true; tcLists.TabPages[i].Controls.Add(task); } } } } else { MessageBox.Show("Вы не авторизовались. Для повторной попытки повторите запуск приложения!"); } }
protected async void deleteList() { TrelloFactory factory = new TrelloFactory(); var board = factory.Board(boardId, authData); await board.Refresh(); var list = board.Lists.FirstOrDefault(l => l.Name == tcLists.SelectedTab.Text); await list.Refresh(); list.IsArchived = true; tcLists.TabPages.Remove(tcLists.SelectedTab); }
public async Task Sync() { ITrelloFactory factory = new TrelloFactory(); Loading(true); Me = await new TrelloFactory().Me(); // Get Scrum Boards ScrumBoards = Me.Boards.Where((board) => board.Name.Contains(ScrumTag)); // Get Related Cards and Lists Tasks = new List <ICard>(); foreach (var board in ScrumBoards) { await board.Refresh(); var lists = board.Lists.Where((list) => list.Name.Contains(PoolTag) || list.Name.Contains(MainPoolTag) || list.Name.Contains(DoingTag) ); foreach (var list in lists) { await list.Refresh(); foreach (var card in list.Cards) { await card.Refresh(); } Tasks.AddRange(list.Cards.Where((card) => card.Members.Contains(Me))); } } // Get Current Doing Task var doingTasks = Tasks.Where((task) => task.List.Name.Contains(DoingTag)); if (doingTasks.ToArray().Length > 1) { // TODO: auto move all cards to main pool MessageBox.Show("You have more than one card in doing. please fix this manually then rerun the app"); Environment.Exit(1); } else { CurrentTask = doingTasks.FirstOrDefault(); OnCurrentTaskChanged(CurrentTask?.Name); } UpdateTaskList(); Loading(false); }
protected async void editListName() { editList edit = new editList(); if (edit.ShowDialog() == DialogResult.OK) { TrelloFactory factory = new TrelloFactory(); var board = factory.Board(boardId, authData); await board.Refresh(); var list = board.Lists.FirstOrDefault(l => l.Name == tcLists.SelectedTab.Text); list.Name = edit.name; tcLists.SelectedTab.Text = edit.name; } }
protected async void createList() { crList create = new crList(); if (create.ShowDialog() == DialogResult.OK) { TrelloFactory factory = new TrelloFactory(); var board = factory.Board(boardId, authData); await board.Refresh(); var newList = await board.Lists.Add(create.name); TabPage page = new TabPage(); page.Text = create.name; tcLists.TabPages.Add(page); } }
private static async Task AddCard() { Console.WriteLine("Inside"); TrelloAuthorization.Default.AppKey = "109fe6fc4bf193d45e7730f7055440b0"; TrelloAuthorization.Default.UserToken = "d6af304d5c424d0d8862b03781c32ddd8adf2ea7aa5ff97bba45b230209cf5a1"; ITrelloFactory factory = new TrelloFactory(); var List = factory.List("5b40363293193091c1ba5014"); Console.WriteLine("Creating a Card ......."); var card = List.Cards.Add("This is A NEW Card"); Console.WriteLine("Create Finished"); await List.Refresh(); return; }
public async Task BuildEnvironment() { if (Current != null) { throw new InvalidOperationException("Test setup occurring twice..."); } if (File.Exists("Manatee.Trello.run")) { File.Delete("Manatee.Trello.run"); } Current = this; EnsureLicense(); TrelloAuthorization.Default.AppKey = TrelloIds.AppKey; TrelloAuthorization.Default.UserToken = _GetUserToken(); TrelloConfiguration.RestClientProvider = new CapturingClientProvider(TrelloConfiguration.RestClientProvider, r => LastRequest = r, r => LastResponse = r); TrelloConfiguration.Log = new LocalOnlyConsoleLog(); var testTimeStamp = $"{DateTime.Now:yyMMddHHmmss}"; Factory = new TrelloFactory(); Me = await Factory.Me(); Organization = await Me.Organizations.Add($"TestOrg_{testTimeStamp}"); Board = await Organization.Boards.Add($"TestBoard_{testTimeStamp}"); await Organization.Refresh(); await Board.Refresh(); }
private static async Task <object> GetDataAsync() { TrelloAuthorization.Default.AppKey = "660a224291cd8cd592b315947a05c402"; TrelloAuthorization.Default.UserToken = "5688f1600c6e7f3e30113e478363fb3d1b3f3c1a6cb1e1ce1bab31b5e24b6adf"; var factory = new TrelloFactory(); const string weeklyEatsBoardId = "GgB8CiSU"; var board = factory.Board(weeklyEatsBoardId); await board.Lists.Refresh(); var recipeIngredients = new List <object>(); var thisWeekListCards = board.Lists .Where(list => list.Name.StartsWith("This Week")) .SelectMany(list => list.Cards) .ToList(); foreach (var card in thisWeekListCards) { await card.Comments.Refresh(); var ingredientComment = card.Comments.SingleOrDefault(comment => comment.Data.Text.StartsWith("Ingredients")); if (ingredientComment != null) { var ingredientsString = ingredientComment.Data.Text.Substring("Ingredients\n".Length); var ingredients = ingredientsString.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries); recipeIngredients.Add( new { RecipeName = card.Name, Ingredients = ingredients, }); } } return(recipeIngredients); }
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); } }