【问题标题】:Add same member many time together with add card trello but don't work多次添加同一成员与添加卡 trello 但不起作用
【发布时间】:2018-12-31 04:52:26
【问题描述】:

多次添加同一个成员以使用添加卡 trello 聚集但不起作用

问题

例如当我输入相同的用户名时

{ "adwin", "adwin", "robert", "dave"}  

如果第一个adwin完成循环添加成员没问题,那么第二个adwin时间添加。

代码退出循环并停止工作。

当我输入的用户名不在版块中或用户名是假的。

{ "hghg$*#hgh", "us7s5209hf9", "8shjd76dhj3" }     

当加卡完成来添加会员时,停止工作并退出程序。

完成添加另一个用户名的循环无效。

计划

我认为在添加到卡片之前将成员添加到董事会会起作用,但它不会再次起作用。

#r"Manatee.Trello.dll"
#r"Manatee.Json.dll"
using System.Net;
using System.ComponentModel;
using System.Drawing;
using System.Windows;
using Manatee.Trello;
using Manatee.Json;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
    string Appkey = "df45ee60b0ff10c19377354490f7054b";
    string Token = "6af303020a7a4d24d9cf5a1dd8adf2e5ff95c46888b0371c0b2dba45b2a32d7d";
    string BoardID = "5b40363293193091c1ba5013";
    string ListID = "5b40363293193091c1ba5015";
    string name ="CardAddMember";
    string description ="desccccc";
    string duedate ="2019-08-04";
    string iscomplete =true;
    string[] user = {"userinboard","notusername","userinboard"};
        try 
        {
            DateTime duedatetime = DateTime.Parse(duedate);//time
            bool torf = Boolean.Parse(iscomplete);//finish work check
            TrelloAuthorization.Default.AppKey = Appkey;
            TrelloAuthorization.Default.UserToken = Token;
            ITrelloFactory factory = new TrelloFactory(); 
                var List = factory.List(ListID);
                var Board = factory.Board(BoardID);
                //var MemberType = factory.Board();
                char[] commaSeparator = new char[] { ',' };
                string[] authors = username.Split(commaSeparator, StringSplitOptions.None);
                var card = await List.Cards.Add(name, description, null, duedatetime, torf, null, null);//add card to trello

                foreach (string author in authors){
                    var Member = factory.Member(author);  
                    await Board.Memberships.Add(Member); // Add member in a board but cant add <<<<<<<<<????????
                    await card.Members.Add(Member); //add member in card
                }    
            var response = new HttpResponseMessage(HttpStatusCode.OK);
            return response;
        }
        catch //find some err [example not find user]
        {   
            return new HttpResponseMessage(HttpStatusCode.NotFound);
        }
}

我该怎么办? cr.marc_s 编辑世界

【问题讨论】:

  • 你检查过你的日志吗? The code exit loop and stop working. 你的意思是你没有得到你在上面的捕获中返回的“NotFound”错误吗?
  • 我的意思是我想让它按用户名的数量运行,直到完成循环。
  • 您将要撤销该令牌。切勿发布授权信息。当我可以使用我的电脑时,我会努力解答。

标签: c# azure-functions trello manatee.trello


【解决方案1】:

您需要在添加成员之前对其进行检查。当您尝试将成员添加到板/卡但该成员已存在时,Trello 会返回错误。这反过来又会导致 Manatee.Trello 抛出异常。

此外,成员必须先属于董事会,然后才能分配给卡片。

首先检查这些成员应该可以解决您的问题。

await Board.Memberships.Refresh(); // this will fetch all of the members of the board

foreach (string author in authors){
    var Member = factory.Member(author);
    if (!Board.Memberships.Any(m => m.Member == Member))
        await Board.Memberships.Add(Member);
    if (!Card.Members.Contains(Member))
        await card.Members.Add(Member);
}

这应该可以解决您遇到的问题。

最后,当您捕获异常时,指定异常并可能打印或记录结果会很有帮助。 Trello 非常擅长返回错误消息及其失败响应,并且 Manatee.Trello 会将它们包含在其 TrelloInteractionExceptions 中。

【讨论】:

    猜你喜欢
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    • 2021-02-13
    • 2015-10-17
    • 1970-01-01
    相关资源
    最近更新 更多