//
        // 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));
        }
Exemple #3
0
        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
            }
        }
Exemple #9
0
        //
        // 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();
            }
        }
Exemple #14
0
        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";
        }
Exemple #17
0
        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"];
        }
Exemple #19
0
        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";
        }
Exemple #21
0
        /// <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();
        }
Exemple #22
0
        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();
        }
Exemple #26
0
        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);
        }
Exemple #30
0
        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);
            }
        }
Exemple #34
0
        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.");
                    });
            });
        }