私はあなたが欲しい機能を複製し、テストを作成しました:
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に私の拡張メソッドです:
は、ここに私の呼び出しコードです。基本的には、ボードに7枚のカードを作成し、別のリストに移動してから削除します(初期状態を維持するだけです)。
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();
}
#region http://stackoverflow.com/q/39926431/878701
private static void Move(Card card, int position, List list = null)
{
if (list != null && list != card.List)
{
card.List = list;
}
card.Position = position;
}
[TestMethod]
public void MovingCards()
{
Run(() =>
{
var list = new List(TrelloIds.ListId);
var cards = new List<Card>();
for (int i = 0; i < 10; i++)
{
cards.Add(list.Cards.Add("test card " + i));
}
var otherList = list.Board.Lists.Last();
for(var i = 0; i < cards.Count; i++)
{
Move(card, i, otherList);
}
foreach (var card in cards)
{
card.Delete();
}
});
}
#endregion
簡単な質問:実行が終了する前にTrelloProcessor.Flush()
に電話していますか?そうしないと、アプリケーションが終了したときに要求プロセッサキューに変更が残る可能性があるので、それらは決して送信されません。詳細は、wiki page on processing requestsを参照してください。
また、移動するたびに1
を使用しています。これを行うことで、信頼性のない発注になります。 Trelloが使用する位置データは浮動小数点です。他の2枚のカードの間にカードを置くには、他のカードの平均をとるだけです。あなたの場合、(宛先リストが空の場合)、私は注文のインデクサー変数を送信することをお勧めします。宛先リストが空でない場合は、リスト内の他のカードに基づいて新しい位置を計算する必要があります(Trelloが使用する平均化方法による)。
最後に、私はあなたが持っている拡張コードが好きです。ライブラリに追加すると便利だと思われるアイデアがある場合は、GitHubリポジトリをフォークしてプルリクエストを作成してください。
正常に動作するはずのもののように見えます。私はそれで遊ぶことができ、私は戻ってきます。あなたに私のサンプルソリューション(私のusername @ yahoo)を送ることができれば、それは助けになるでしょう。 – gregsdennis