c# - 无法将字符串分配给 bool 导致异步任务
问题描述
我有一个这样的场景:
我有异步任务方法,在这个方法中包含 3 个作业,它们都返回布尔结果(真/假)。这段代码的主要目标是创建一个 JIRA 问题,如果所有三个作业都返回false
值(这部分工作得很好),但如果false
三个结果中有一个或两个,它应该创建两个(以防 2 个错误)单独的 JIRA 问题。
这是一个代码:
public static async Task TaskArray(string urlTypeId, int ID, string l)
{
async Task<bool> t1()
{
bool result = true;
try
{
FindElement(driver, SelectorTypes.ByXpath, "xpath");
}
catch { result = false; TestResult(ID, ErrorText(1), driver, urlTypeId, l); }
return result;
}
async Task<bool> t2()
{
bool result = true;
try
{
FindElement(driver, SelectorTypes.ByXpath, "xpath");
}
catch { result = false; TestResult(ID, ErrorText(2), driver, urlTypeId, l); }
return result;
}
async Task<bool> t3()
{
bool result = true;
try
{
FindElement(driver, SelectorTypes.ByXpath, "xpath");
}
catch (Exception e) { result = false; (ID, ErrorText(3), driver, urlTypeId, l); }
return result;
}
//Creating ticket(s)
{
Task<bool> bee = t1();
Task<bool> geo = t2();
Task<bool> mag = t3();
if (await bee == false && await geo == false && await mag == false)
{
// all results are false, creating 1 ticket
CreateTicket(ID, GErrorText(4), driver, urlTypeId, l, "Main", "Desktop", "Website", "SB", "All");
}
else
{
//1 or 2 false result(s) create ticket for each false
var BooleanArray = new bool[] { await bee, await geo, await mag };
var NamesArray = new string[] { "John", "George", "Nick" };
foreach (Boolean value in BooleanArray)
{
if (value == false)
{
CreateTicket(ID, ErrorText("string"), driver, urlTypeId, l, "Main", "Desktop", "Website", "SB", NamesArray[j]);
}
}
}
}
最后else
我试图:
- 获取
false
结果数量; - 识别三个(“bee”、“geo”、“mag”)中哪些返回错误结果;
- 转到
foreach
并创建一个 JIRA 票证,它将正确的 ErrorTexts 作为参数之一传递,它还将从NamesArray
我知道这太复杂了,所以我将在下面提供一个完整场景的示例:
- 如果所有三个作业都返回 value
false
,它会创建一张票(正如我之前已经提到的,这种情况下工作正常); - 如果三个结果中有 2
false
个,则进入最后一个 else 并完成foreach
两次(因为我们有 2 个错误结果)。在每次进入 foreach 时,传递给CreateTicket
方法的参数不是静态的,而是动态的。例如:如果 "t1" 和 "t2" 返回 false 结果,则必须完成以下操作:
CreateTicket(ID, ErrorText(1), driver, urlTypeId, l, "Main", "Desktop", "Website", "SB", "John");
接着
CreateTicket(ID, ErrorText(2), driver, urlTypeId, l, "Main", "Desktop", "Website", "SB", "George");
我希望我能在这里找到帮助或提示,我已经在几周内尝试解决这个问题,但我仍然找不到合适的方法来解决它。
先感谢您。
解决方案
推荐阅读
- ios - Wordpress 自定义 CSS 无法在 iOS 上加载
- java - 客户凭证 - 如何验证令牌?
- css - 为什么 FPS 在 Chrome DevTools 中没有显示任何数据?
- r - 从多个回归模型中提取 AIC
- java - 当数据库中有数据时,为什么我在休眠中得到 NoResultException?
- python - 解压缩 .gz 文件并将它们存储在 .tar.gz 存档中
- android - 如何创建半透明的圆形工具栏/操作栏项目?
- html - 从批处理创建一个 html 文件
- html - WordPress - www.####.com/?p=id
- swift - 何时在 ViewController 上使用 View