private bool Copy_Stage(int pProjectNo, int pProjectNo_Clone) { //XmlSerializer serializer = new XmlSerializer(typeof(PM_StageData)); oCompServ = (CompanyService)oCompany.GetCompanyService(); pmgService = (ProjectManagementService)oCompServ.GetBusinessService(ServiceTypes.ProjectManagementService); PM_ProjectDocumentParams projectParam = (PM_ProjectDocumentParams)pmgService.GetDataInterface(ProjectManagementServiceDataInterfaces.pmsPM_ProjectDocumentParams); projectParam.AbsEntry = pProjectNo; PM_ProjectDocumentData project = pmgService.GetProject(projectParam); PM_ProjectDocumentParams projectCloneParam = (PM_ProjectDocumentParams)pmgService.GetDataInterface(ProjectManagementServiceDataInterfaces.pmsPM_ProjectDocumentParams); projectCloneParam.AbsEntry = pProjectNo_Clone; PM_ProjectDocumentData projectclone = pmgService.GetProject(projectCloneParam); foreach (PM_StageData sta_tmp in project.PM_StagesCollection) { PM_StageData tmp = projectclone.PM_StagesCollection.Add(); tmp.StartDate = sta_tmp.StartDate; tmp.Description = sta_tmp.Description; pmgService.UpdateProject(projectclone); } //Khong con cach nao khac - Can thiep tho bao vao DB voi cac truong UDF cua Stage //SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DB"].ConnectionString); //string str_comand = "Update A Set"; //string UDF = ConfigurationManager.AppSettings["UDF_Project_Stage"].ToString(); //if (!string.IsNullOrEmpty(UDF)) //{ // foreach (string field in UDF.Split(',')) // { // str_comand = str_comand + string.Format(" a.{0} = b.{1} ,", field, field); // } // str_comand = str_comand.Substring(0, str_comand.Length - 1); // str_comand += string.Format("From PMG1 as a inner join (Select * from PMG1 where AbsEntry = {0}) as b on a.LineID = b.LineID where a.AbsEntry = {1}", pProjectNo, pProjectNo_Clone); // SqlCommand cmd = new SqlCommand(str_comand, conn); // try // { // conn.Open(); // cmd.ExecuteNonQuery(); // } // catch (Exception ex) // { // return false; // } // finally // { // conn.Close(); // cmd.Dispose(); // } //} return(true); }
private bool Copy_SubProject(int pProjectNo, int pProjectNo_Clone) { oCompServ = (CompanyService)oCompany.GetCompanyService(); pmgService = (ProjectManagementService)oCompServ.GetBusinessService(ServiceTypes.ProjectManagementService); PM_ProjectDocumentParams projectParam = (PM_ProjectDocumentParams)pmgService.GetDataInterface(ProjectManagementServiceDataInterfaces.pmsPM_ProjectDocumentParams); projectParam.AbsEntry = pProjectNo; PM_ProjectDocumentData project = pmgService.GetProject(projectParam); try { List <int> subproject_tmp = new List <int>(); List <int> subproject_clone = new List <int>(); Dictionary <int, int> mapping_sub = new Dictionary <int, int>(); int depth_lv_max = Get_Depth_Level_Subproject(pProjectNo); for (int depth_lv = 0; depth_lv <= depth_lv_max; depth_lv++) { if (depth_lv == 0) { subproject_tmp = Get_AbsEntry_Subproject_List(pProjectNo); foreach (int i in subproject_tmp) { PM_SubprojectDocumentParams tmp_subprojectpara = (PM_SubprojectDocumentParams)pmgService.GetDataInterface(ProjectManagementServiceDataInterfaces.pmsPM_SubprojectDocumentParams); tmp_subprojectpara.AbsEntry = i; PM_SubprojectDocumentData tmp_subproject = pmgService.GetSubproject(tmp_subprojectpara); tmp_subproject.ProjectID = pProjectNo_Clone; pmgService.AddSubproject(tmp_subproject); } subproject_clone = Get_AbsEntry_Subproject_List(pProjectNo_Clone); for (int t = 0; t < subproject_tmp.Count; t++) { mapping_sub.Add(subproject_tmp.ToArray()[t], subproject_clone.ToArray()[t]); } } else if (depth_lv > 0) { subproject_tmp = Get_AbsEntry_Subproject_List(pProjectNo, 0, depth_lv); foreach (int i in subproject_tmp) { PM_SubprojectDocumentParams tmp_subprojectpara = (PM_SubprojectDocumentParams)pmgService.GetDataInterface(ProjectManagementServiceDataInterfaces.pmsPM_SubprojectDocumentParams); tmp_subprojectpara.AbsEntry = i; PM_SubprojectDocumentData tmp_subproject = pmgService.GetSubproject(tmp_subprojectpara); tmp_subproject.ProjectID = pProjectNo_Clone; tmp_subproject.ParentID = mapping_sub[tmp_subproject.ParentID]; pmgService.AddSubproject(tmp_subproject); } subproject_clone = Get_AbsEntry_Subproject_List(pProjectNo_Clone, 0, depth_lv); for (int t = 0; t < subproject_tmp.Count; t++) { mapping_sub.Add(subproject_tmp.ToArray()[t], subproject_clone.ToArray()[t]); } } } } catch (Exception ex) { oApp.MessageBox(ex.Message); return(false); } return(true); }