Добавить одного и того же члена много раз вместе с добавить карту Trello, но не работает

Добавить одного и того же члена много раз, чтобы собрать с добавлением карты 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 редактировать мир

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.

Другие вопросы по тегам