我正在编写一个小型应用程序来管理 Trello Boards 仅在几个方面,例如在列表中对卡片进行排序、根据到期日期和/或标签移动/复制卡片、定期归档列表以及基于标签生成报告,等等。因此,我一直在围绕 Manatee.Trello 库构建一个外观,以简化我的服务界面。
我已经对图书馆感到满意,而且事情相对顺利。但是,我在 Card 类上编写了一个扩展方法来在列表内或列表之间移动卡片,另一个方法重复调用此扩展方法以将所有卡片从一个列表移动到另一个列表。
我的问题是,当在几个 7 张卡合二为一的虚拟列表上运行代码时,它可以毫无错误地完成,但至少一张卡实际上并没有被移动(尽管多达 3 张卡未能移动)。我不知道这是因为我的动作太快了,还是我需要调整 TrelloConfiguration.ChangeSubmissionTime,或者什么。我试过玩延迟,但没有帮助。
这是我的调用代码:
public void MoveCardsBetweenLists(
string originListName,
string destinationListName,
string originBoardName,
string destinationBoardName = null)
{
var fromBoard = GetBoard(originBoardName); // returns a Manatee.Trello.Board
var toBoard = destinationBoardName == null
|| destinationBoardName.Equals(originBoardName, StringComparison.OrdinalIgnoreCase)
? fromBoard
: GetBoard(destinationBoardName);
var fromList = GetListFromBoard(originListName, fromBoard); // returns a Manatee.Trello.List from the specified Board
var toList = GetListFromBoard(destinationListName, toBoard);
for (int i = 0; i < fromList.Cards.Count(); i++)
{
fromList.Cards[i].Move(1, toList);
}
}
这是我在 Manatee.Trello.Card 上的扩展方法:
public static void Move(this Card card, int position, List list = null)
{
if (list != null && list != card.List)
{
card.List = list;
}
card.Position = position;
}