private void btnDone_Click(object sender, EventArgs e) { try { EFServerTools.Design.MetadataProvider aMetadataProvider = new EFServerTools.Design.MetadataProvider(System.IO.Path.GetDirectoryName(GlobalProject.FullName), GlobalProject.Name); for (int i = 0; i < FServerData.Datasets.Count; i++) { TWCFDatasetItem DatasetItem = FServerData.Datasets[i] as TWCFDatasetItem; String strEntityTypeName = aMetadataProvider.GetEntitySetType(DatasetItem.ContainerName, DatasetItem.TableName); List<string> lPropertyNames = aMetadataProvider.GetPropertyNames(DatasetItem.ContainerName, strEntityTypeName); for (int l = 0; l < lPropertyNames.Count; l++) { bool flag = false; for (int j = 0; j < DatasetItem.FieldAttrItems.Count; j++) { if ((DatasetItem.FieldAttrItems[j] as TFieldAttrItem).DataField == lPropertyNames[l]) { flag = true; break; } } if (!flag) aMetadataProvider.RemoveProperty(DatasetItem.ContainerName, strEntityTypeName, lPropertyNames[l]); } } aMetadataProvider.Save(); String strOldName = String.Empty; foreach (ProjectItem pi in GlobalProject.ProjectItems) { if (pi.Name.EndsWith("edmx")) { strOldName = pi.Name; File.Copy(FServerData.CodeOutputPath + "\\" + FServerData.PackageName + "\\" + strOldName, FServerData.CodeOutputPath + "\\" + FServerData.PackageName + "\\" + GlobalProject.Name + "_infolightTemp.edmx"); pi.Delete(); GlobalProject.Save(); GlobalProject.ProjectItems.AddFromTemplate(FServerData.CodeOutputPath + "\\" + FServerData.PackageName + "\\" + GlobalProject.Name + "_infolightTemp.edmx", FServerData.CodeOutputPath + "\\" + FServerData.PackageName + "\\" + strOldName); GlobalProject.Save(); File.Delete(FServerData.CodeOutputPath + "\\" + FServerData.PackageName + "\\" + GlobalProject.Name + "_infolightTemp.edmx"); break; } } if (FServerData.AssemblyOutputPath != null && FServerData.AssemblyOutputPath != "") GlobalProject.ConfigurationManager.ActiveConfiguration.Properties.Item("OutputPath").Value = FServerData.AssemblyOutputPath; //foreach (ProjectItem pi in GlobalProject.ProjectItems) //{ // if (pi.Name.EndsWith("edmx")) // { // pi.Open("{00000000-0000-0000-0000-000000000000}"); // break; // } //} Hide(); FDTE2.MainWindow.Activate(); TWCFServerGenerator SG = new TWCFServerGenerator(FServerData, FDTE2, FAddIn, GlobalProject); SG.GenServerModule(); } catch (Exception ex) { WzdUtils.Application_ThreadException(null, new ThreadExceptionEventArgs(ex)); return; } }
public void SDGenServerModule(string XML) { if (XML != "") { FServerData.Datasets.Clear(); FServerData.LoadFromXML(XML); } TWCFServerGenerator SG = new TWCFServerGenerator(FServerData, FDTE2, FAddIn, GlobalProject); SG.GenServerModule(); }