private static QCTestSet UpdateExistingTestSet(BusinessFlow businessFlow, QCTestSet mappedTestSet, string uploadPath, ObservableList <ExternalItemFieldBase> testSetFields)
        {
            QCTestSet testSet = ImportFromQCRest.GetQCTestSet(mappedTestSet.Id.ToString());

            //set item fields for test set
            foreach (ExternalItemFieldBase field in testSetFields)
            {
                if (field.ToUpdate || field.Mandatory)
                {
                    if (string.IsNullOrEmpty(field.ExternalID) == false && field.SelectedValue != "NA")
                    {
                        if (testSet.ElementsField.ContainsKey(field.ID))
                        {
                            testSet.ElementsField[field.ExternalID] = field.SelectedValue;
                        }
                    }
                }
            }

            testSet.ElementsField["name"] = businessFlow.Name;

            try
            {
                QCItem          item     = ConvertObjectValuesToQCItem(testSet, ResourceType.TEST_SET, true);
                ALMResponseData response = QCRestAPIConnect.UpdateEntity(ResourceType.TEST_SET, testSet.Id, item);
                return(QCRestAPIConnect.GetTestSetDetails(testSet.Id));
            }
            catch (Exception ex)
            {
                Reporter.ToLog(eLogLevel.ERROR, $"Method - {MethodBase.GetCurrentMethod().Name}, Error - {ex.Message}");
                return(null);
            }
        }
        private static QCTestSet CreateNewTestSet(BusinessFlow businessFlow, string uploadPath, ObservableList <ExternalItemFieldBase> testSetFields)
        {
            QCTestSet testSet = new QCTestSet();

            //set the upload path
            testSet.ElementsField["parent-id"] = QCRestAPIConnect.GetLastTestSetIdFromPath(uploadPath).ToString();

            //set item fields for test set
            foreach (ExternalItemFieldBase field in testSetFields)
            {
                if (field.ToUpdate || field.Mandatory)
                {
                    if (string.IsNullOrEmpty(field.ExternalID) == false && field.SelectedValue != "NA")
                    {
                        testSet.ElementsField[field.ExternalID] = field.SelectedValue;
                    }
                    else
                    {
                        try { testSet.ElementsField[field.ID] = "NA"; }
                        catch { }
                    }
                }
            }

            testSet.ElementsField["name"]       = businessFlow.Name;
            testSet.ElementsField["subtype-id"] = "hp.qc.test-set.default";

            try
            {
                QCItem          item     = ConvertObjectValuesToQCItem(testSet, ResourceType.TEST_SET);
                ALMResponseData response = QCRestAPIConnect.CreateNewEntity(ResourceType.TEST_SET, item);
                return(QCRestAPIConnect.GetTestSetDetails(response.IdCreated));
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains("The Test Set already exists"))
                {
                    string result = "Cannot export Business Flow - The Test Set already exists in the selected folder. ";
                    Reporter.ToLog(eLogLevel.ERROR, result, ex);
                    return(null);
                }

                Reporter.ToLog(eLogLevel.ERROR, $"Method - {MethodBase.GetCurrentMethod().Name}, Error - {ex.Message}");
                return(null);
            }
        }