public string VerifyPDPExist(string pwaOrigem, string pwaDestino, Guid EPT_UID) { SvcWorkflow.WorkflowClient clientWorkflowOrigem = new SvcWorkflow.WorkflowClient(Binding, endPointAdress(pwaOrigem, "/_vti_bin/psi/Workflow.asmx")); clientWorkflowOrigem.ClientCredentials.Windows.ClientCredential = new NetworkCredential(this.User, this.PassWord, this.Domain); SvcWorkflow.WorkflowClient clientWorkflowDestino = new SvcWorkflow.WorkflowClient(Binding, endPointAdress(pwaDestino, "/_vti_bin/psi/Workflow.asmx")); clientWorkflowDestino.ClientCredentials.Windows.ClientCredential = new NetworkCredential(this.User, this.PassWord, this.Domain); SvcWorkflow.WorkflowDataSet dsEnterpriseOrigem = clientWorkflowOrigem.ReadEnterpriseProjectType(EPT_UID); SvcWorkflow.WorkflowDataSet dsEnterpriseDestino = clientWorkflowDestino.ReadEnterpriseProjectTypeList(); string PDPs = string.Empty; foreach (DataRow item in dsEnterpriseOrigem.EnterpriseProjectTypePDPs.Rows) { var oRowPDP = dsEnterpriseDestino.EnterpriseProjectTypePDPs.Select(string.Format("PDP_NAME = '{0}'", item["PDP_NAME"].ToString())).FirstOrDefault(); if (oRowPDP == null) { PDPs += item["PDP_NAME"].ToString() + ","; } } if (PDPs.Length == 0) { return(string.Empty); } return(PDPs.Substring(0, PDPs.Length - 1)); }
public void CreateEnterpriseProjectType(string pwaOrigem, string pwaDestino, string nameProjecType, Guid Uid) { //SvcWorkflow.WorkflowDataSet.EnterpriseProjectTypeDataTable dt = new SvcWorkflow.WorkflowDataSet.EnterpriseProjectTypeDataTable(); try { SvcWorkflow.WorkflowClient clientWorkflowOrigem = new SvcWorkflow.WorkflowClient(Binding, endPointAdress(pwaOrigem, "/_vti_bin/psi/Workflow.asmx")); clientWorkflowOrigem.ClientCredentials.Windows.ClientCredential = new NetworkCredential(this.User, this.PassWord, this.Domain); SvcWorkflow.WorkflowClient clientWorkflowDestino = new SvcWorkflow.WorkflowClient(Binding, endPointAdress(pwaDestino, "/_vti_bin/psi/Workflow.asmx")); clientWorkflowDestino.ClientCredentials.Windows.ClientCredential = new NetworkCredential(this.User, this.PassWord, this.Domain); SvcWorkflow.WorkflowDataSet dsEnterpriseOrigem = clientWorkflowOrigem.ReadEnterpriseProjectType(Uid); SvcWorkflow.WorkflowDataSet dsEnterpriseDestino = new SvcWorkflow.WorkflowDataSet(); SvcWorkflow.WorkflowDataSet dsEnterpriseDestino2 = clientWorkflowDestino.ReadEnterpriseProjectTypeList(); //SvcWorkflow.WorkflowDataSet.EnterpriseProjectTypePDPsDataTable dtPDP = clientWorkflowOrigem.read Guid ENTERPRISE_PROJECT_TYPE_UID = Guid.Empty; foreach (SvcWorkflow.WorkflowDataSet.EnterpriseProjectTypeRow itemEnterprise in dsEnterpriseOrigem.EnterpriseProjectType.Rows) { SvcWorkflow.WorkflowDataSet.EnterpriseProjectTypeRow oRow = dsEnterpriseDestino.EnterpriseProjectType.NewEnterpriseProjectTypeRow(); foreach (DataColumn itemColumn in dsEnterpriseOrigem.EnterpriseProjectType.Columns) { if (!dsEnterpriseDestino.EnterpriseProjectType.Columns.Contains(itemColumn.ToString())) { continue; } if (itemColumn.ToString().Equals("WORKFLOW_ASSOCIATION_UID") || itemColumn.ToString().Equals("WORKFLOW_ASSOCIATION_NAME")) { continue; } var dnsEquals = GetDnsName(pwaOrigem) == GetDnsName(pwaDestino); if (nameProjecType.Length > 0 && itemColumn.ToString().Equals("ENTERPRISE_PROJECT_TYPE_NAME")) { oRow[itemColumn.ToString()] = nameProjecType; continue; } if (itemColumn.ToString().Equals("ENTERPRISE_PROJECT_TYPE_UID")) { ENTERPRISE_PROJECT_TYPE_UID = Guid.Parse(itemEnterprise[itemColumn.ToString()].ToString()); } if (itemColumn.ToString().Equals("ENTERPRISE_PROJECT_TYPE_UID") && dnsEquals) { ENTERPRISE_PROJECT_TYPE_UID = Guid.NewGuid(); oRow[itemColumn.ToString()] = ENTERPRISE_PROJECT_TYPE_UID; continue; } if (itemColumn.ToString().Equals("ENTERPRISE_PROJECT_WORKSPACE_TEMPLATE_NAME")) { oRow[itemColumn.ToString()] = "ProjectSite#0"; continue; } if (itemColumn.ToString().Equals("ENTERPRISE_PROJECT_TYPE_IMAGE_URL")) { oRow[itemColumn.ToString()] = string.Format("/_layouts/15/inc/{0}/images/CenterNormalProject.png", GetPwaName(pwaDestino).Replace("/", string.Empty)); continue; } //EnterpriseProjectTypeInvalidWorkspaceTemplateName if (itemEnterprise[itemColumn.ToString()] != null && !itemColumn.ReadOnly) { oRow[itemColumn.ToString()] = itemEnterprise[itemColumn.ToString()]; } } dsEnterpriseDestino.EnterpriseProjectType.AddEnterpriseProjectTypeRow(oRow); //dsWorkflow.EnterpriseProjectType.AddEnterpriseProjectTypeRow(oRow); } foreach (SvcWorkflow.WorkflowDataSet.EnterpriseProjectTypePDPsRow itemPDPs in dsEnterpriseOrigem.EnterpriseProjectTypePDPs.Rows) { SvcWorkflow.WorkflowDataSet.EnterpriseProjectTypePDPsRow oRowPDP = dsEnterpriseDestino.EnterpriseProjectTypePDPs.NewEnterpriseProjectTypePDPsRow(); foreach (DataColumn itemColumn in dsEnterpriseOrigem.EnterpriseProjectTypePDPs.Columns) { if (itemColumn.ToString().Equals("PDP_UID")) { continue; } if (itemColumn.ToString().Equals("PDP_NAME")) { var oDataRow = dsEnterpriseDestino2.EnterpriseProjectTypePDPs.Select(string.Format("PDP_NAME = '{0}'", itemPDPs[itemColumn.ToString()])).FirstOrDefault(); if (oDataRow != null) { oRowPDP["PDP_UID"] = oDataRow["PDP_UID"]; } else { var oDataRow2 = dsEnterpriseDestino2.EnterpriseProjectTypePDPs.Select().FirstOrDefault(); oRowPDP["PDP_UID"] = oDataRow2["PDP_UID"]; } } if (itemColumn.ToString().Equals("ENTERPRISE_PROJECT_TYPE_UID")) { oRowPDP[itemColumn.ToString()] = ENTERPRISE_PROJECT_TYPE_UID; continue; } if (itemPDPs[itemColumn.ToString()] != null && !itemColumn.ReadOnly) { oRowPDP[itemColumn.ToString()] = itemPDPs[itemColumn.ToString()]; } } dsEnterpriseDestino.EnterpriseProjectTypePDPs.AddEnterpriseProjectTypePDPsRow(oRowPDP); } //dsWorkflow.EnterpriseProjectType.AcceptChanges(); //dsWorkflow.EnterpriseProjectTypePDPs.AcceptChanges(); clientWorkflowDestino.CreateEnterpriseProjectType(dsEnterpriseDestino); } catch (SoapException ex) { string errMess = ""; // Pass the exception to the PSClientError constructor to // get all error information. PSLibrary.PSClientError psiError = new PSLibrary.PSClientError(ex); PSLibrary.PSErrorInfo[] psiErrors = psiError.GetAllErrors(); for (int j = 0; j < psiErrors.Length; j++) { errMess += psiErrors[j].ErrId.ToString() + "\n"; } errMess += "\n" + ex.Message.ToString(); MessageBox.Show(errMess); // Send error string to console or message box. } catch (Exception ex) { throw ex; } }