// Try to set normal to archive
        public void Run_SimpleInstance_Set_Error_Case1597()
        {
            int runCount = 0;

            foreach (InputDataSet ids in this.Input.DataSets)
            {
                runCount++;
                Round r = this.NewRound(runCount.ToString(), ids.Description);

                try
                {
                    ImportService importSvc = new ImportService();
                    SimpleInstanceServiceV2 simpleInstanceSvc = new SimpleInstanceServiceV2();

                    string patientID = null;
                    string objectFileFullPath = null;

                    SimpleSetSimpleInstanceInfoRequestType pSetSimpleInstanceInfo = new SimpleSetSimpleInstanceInfoRequestType();
                    pSetSimpleInstanceInfo.simpleInstance = new SimpleInstanceType();

                    for (int i = 0; i < ids.InputParameters.Count; i++)
                    {
                        if (ids.InputParameters.GetParameter(i).Step == "import")
                        {
                            if (ids.InputParameters.GetParameter(i).Key == "patientID")
                            {
                                patientID = ids.InputParameters.GetParameter(i).Value;
                            }
                            else if (ids.InputParameters.GetParameter(i).Key == "objectFileFullPath")
                            {
                                objectFileFullPath = ids.InputParameters.GetParameter(i).Value;
                            }
                        }
                        else if (ids.InputParameters.GetParameter(i).Step == "setSimpleInstance")
                        {
                            if (ids.InputParameters.GetParameter(i).Key == "archivePath")
                            {
                                pSetSimpleInstanceInfo.simpleInstance.archivePath = ids.InputParameters.GetParameter(i).Value;
                            }
                        }
                    }

                    string epCode = string.Empty;
                    string epMessage = string.Empty;
                    for (int i = 0; i < ids.ExpectedValues.Count; i++)
                    {
                        if (ids.ExpectedValues.GetParameter(i).Key == "code")
                        {
                            epCode = ids.ExpectedValues.GetParameter(i).Value;
                        }
                        else if (ids.ExpectedValues.GetParameter(i).Key == "message")
                        {
                            epMessage = ids.ExpectedValues.GetParameter(i).Value;
                        }
                    }

                    #region Step: Import a normal simple instance
                    CheckPoint cpImport = new CheckPoint("Import Simple Instance", "Import to create a normal simple instance");
                    r.CheckPoints.Add(cpImport);

                    XMLResult rtImport = importSvc.importObject(patientID, null, objectFileFullPath, null, true, "false");

                    if (rtImport.IsErrorOccured)
                    {
                        cpImport.Result = TestResult.Fail;
                        cpImport.Outputs.AddParameter("Import", "Call import to create a normal simple instance returns error", rtImport.Message);
                        SaveRound(r);
                        continue;
                    }
                    else
                    {
                        cpImport.Result = TestResult.Pass;
                        cpImport.Outputs.AddParameter("Import", "Call import to create a normal simple instance returns ok", rtImport.Message);
                    }
                    #endregion

                    #region Step: Call setSimpleInstanceInfo to change info
                    // To do: debug this if the id is correct
                    pSetSimpleInstanceInfo.simpleInstance.uid = rtImport.SingleResult;

                    CheckPoint cpSetSimpleInstanceInfo = new CheckPoint("Set Simple Instance Info", "Set Simple Instance Info");
                    r.CheckPoints.Add(cpSetSimpleInstanceInfo);

                    SimpleSetSimpleInstanceInfoResponseType rtSetSimpleInstanceInfo = simpleInstanceSvc.setSimpleInstanceInfo(pSetSimpleInstanceInfo);
                    if (!simpleInstanceSvc.LastReturnXMLValidateResult.isValid)
                    {
                        cpSetSimpleInstanceInfo.Result = TestResult.Fail;
                        cpSetSimpleInstanceInfo.Outputs.AddParameter("Set Simple Instance", "Invalid XML", "setSimpleInstance response is not complied with schema.");
                        SaveRound(r);
                        continue;
                    }

                    if (rtSetSimpleInstanceInfo.status.code.ToString() != epCode || !rtSetSimpleInstanceInfo.status.message.Contains(epMessage))
                    {
                        cpSetSimpleInstanceInfo.Result = TestResult.Fail;
                        cpSetSimpleInstanceInfo.Outputs.AddParameter("Set Simple Instance", "Check the setSimpleInstance response", "setSimpleInstance doesn't return expected result.  Code: " + rtSetSimpleInstanceInfo.status.code.ToString() + "; Message: " + rtSetSimpleInstanceInfo.status.message);
                        SaveRound(r);
                        continue;
                    }
                    else
                    {
                        cpSetSimpleInstanceInfo.Result = TestResult.Pass;
                        cpSetSimpleInstanceInfo.Outputs.AddParameter("Set Simple Instance Info", "Check the setSimpleInstance response", "setSimpleInstance returns expected result. Code: " + rtSetSimpleInstanceInfo.status.code.ToString() + "; Message: " + rtSetSimpleInstanceInfo.status.message);
                    }
                    #endregion

                    #region Step: Check the instance is still normal
                    SimpleGetSimpleInstanceInfoResponseType rtGetInfo = simpleInstanceSvc.getSimpleInstanceInfo(pSetSimpleInstanceInfo.simpleInstance.uid);

                    CheckPoint cpPatientID = new CheckPoint("Check instance", "Check instance after set");
                    r.CheckPoints.Add(cpPatientID);
                    if (rtGetInfo.simpleInstance.tags != "archived" && string.IsNullOrEmpty(rtGetInfo.simpleInstance.archivePath))
                    {
                        cpPatientID.Result = TestResult.Pass;
                        cpPatientID.Outputs.AddParameter("Check instance", "Check instance after set", "The instance is still normal as expected.");
                    }
                    else
                    {
                        cpPatientID.Result = TestResult.Fail;
                        cpPatientID.Outputs.AddParameter("Check instance", "Check instance after set", "The instance info is not correct. getSimpleInstanceInfo returns: " + simpleInstanceSvc.LastReturnXML);
                        SaveRound(r);
                        continue;
                    }
                    #endregion

                    SaveRound(r);
                }
                catch (Exception ex)
                {
                    CheckPoint cp = new CheckPoint();
                    r.CheckPoints.Add(cp);
                    cp.Result = TestResult.Fail;
                    cp.Outputs.AddParameter("Exception thrown when case runs", "Exception message", ex.Message);
                    SaveRound(r);
                }
            }

            Output();
        }
        // Wrong instance ID
        public void Run_SimpleInstance_Set_Error_Case1594()
        {
            int runCount = 0;

            foreach (InputDataSet ids in this.Input.DataSets)
            {
                runCount++;
                Round r = this.NewRound(runCount.ToString(), ids.Description);

                try
                {
                    SimpleInstanceServiceV2 simpleInstanceSvc = new SimpleInstanceServiceV2();

                    SimpleSetSimpleInstanceInfoRequestType pSetSimpleInstance = new SimpleSetSimpleInstanceInfoRequestType();
                    pSetSimpleInstance.simpleInstance = new SimpleInstanceType();
                    for (int i = 0; i < ids.InputParameters.Count; i++)
                    {
                        if (ids.InputParameters.GetParameter(i).Step == "setSimpleInstance")
                        {
                            if (ids.InputParameters.GetParameter(i).Key == "instanceID")
                            {
                                pSetSimpleInstance.simpleInstance.uid = ids.InputParameters.GetParameter(i).Value;
                            }
                        }
                    }

                    string epCode = string.Empty;
                    string epMessage = string.Empty;
                    for (int i = 0; i < ids.ExpectedValues.Count; i++)
                    {
                        if (ids.ExpectedValues.GetParameter(i).Key == "code")
                        {
                            epCode = ids.ExpectedValues.GetParameter(i).Value;
                        }
                        else if (ids.ExpectedValues.GetParameter(i).Key == "message")
                        {
                            epMessage = ids.ExpectedValues.GetParameter(i).Value;
                        }
                    }

                    CheckPoint cpSetSimpleInstance = new CheckPoint("Set Simple Instance", "Set Simple Instance");
                    r.CheckPoints.Add(cpSetSimpleInstance);

                    SimpleSetSimpleInstanceInfoResponseType rtSetSimpleInstance = simpleInstanceSvc.setSimpleInstanceInfo(pSetSimpleInstance);
                    if (!simpleInstanceSvc.LastReturnXMLValidateResult.isValid)
                    {
                        cpSetSimpleInstance.Result = TestResult.Fail;
                        cpSetSimpleInstance.Outputs.AddParameter("Set Simple Instance", "Invalid XML", "setSimpleInstance response is not complied with schema.");
                        SaveRound(r);
                        continue;
                    }

                    if (rtSetSimpleInstance.status.code.ToString() != epCode || !rtSetSimpleInstance.status.message.Contains(epMessage))
                    {
                        cpSetSimpleInstance.Result = TestResult.Fail;
                        cpSetSimpleInstance.Outputs.AddParameter("Set Simple Instance", "Check the setSimpleInstance response", "setSimpleInstance doesn't return expected result.  Code: " + rtSetSimpleInstance.status.code.ToString() + "; Message: " + rtSetSimpleInstance.status.message);
                        SaveRound(r);
                        continue;
                    }
                    else
                    {
                        cpSetSimpleInstance.Result = TestResult.Pass;
                        cpSetSimpleInstance.Outputs.AddParameter("Set Simple Instance Info", "Check the setSimpleInstance response", "setSimpleInstance returns expected result. Code: " + rtSetSimpleInstance.status.code.ToString() + "; Message: " + rtSetSimpleInstance.status.message);
                    }

                    SaveRound(r);
                }
                catch (Exception ex)
                {
                    CheckPoint cp = new CheckPoint();
                    r.CheckPoints.Add(cp);
                    cp.Result = TestResult.Fail;
                    cp.Outputs.AddParameter("Exception thrown when case runs", "Exception message", ex.Message);
                    SaveRound(r);
                }
            }

            Output();
        }