使代码片段更通用或/并按重用顺序重构它

时间:2017-05-04 08:01:00

标签: c# asp.net .net generics

我有一些包含大量嵌套循环的代码块(我在这里要提到的是我们对代码的速度没有问题)。现在反过来说,我必须在同一个Controller Action中使用相同的功能再次使用所有循环,但我不想只复制和粘贴相同的代码,只是在那里更改变量。

代码的概念是第一个For循环,我们通过某些API发出请求,如果响应为空,我们就停止发送请求。在循环内部,我们正在读取每个调用的JSON响应并将其添加到我们的类中:

var transactions = new List<Transaction>();
for (int i = 0; i < pages; i++)
{
    if (morePagesInXero == false)
    {
         valueCollection.Add("page", pages.ToString());
         morePages= true;
    }
    else
    {
         valueCollection.Set("page", pages.ToString());
    }

var invoices = api.GetArray(GlobalConstants.Invoices, where, null, valueCollection);
dynamic invoicesResponse=JObject.Parse(invoices.ToString());

var jsonTransactions =((JProperty((JContainer)invoicesResponse).Last).Value;
var arrayTransactions = ((JArray)jsonTransactions);
 // Check if there are more than 1 page
if (arrayTransactions.Count == 0)
{
     break;
}
else
{
    foreach (var item in jsonTransactions)
    {
        transaction.taxDirection = "DummyDataFromResponseJSON";
        transaction.invoiceNumber = "DummyData1FromResponseJSON"
        transaction.upstreamModifiedAt = "DummyData2FromResponseJSON";
        transaction.currency = "DummyData3FromResponseJSON";
        transaction.customerId = "DummyData4FromResponseJSON";
        // and so on ...
        transactions.Add(transaction);
    }
    pages++;
}

现在我必须在不同的端点上对API进行新的调用,但操作JSON响应的逻辑与这些循环的逻辑相同。请建议是否可以重复使用上面的代码,以使其更通用,只需重复使用它。

提前致谢。

0 个答案:

没有答案