public static FeatureSerializable FeatureContextSerializableGetShallowCopy(this FeatureSerializable srcFeatureSerializable) { if (srcFeatureSerializable == null) { return(null); } FeatureSerializable result = new FeatureSerializable() { FeatureName = srcFeatureSerializable.FeatureName, FeatureItems = srcFeatureSerializable.FeatureItems }; result.CommonStaffs = new List <CommonStaffSerializable>(); if (srcFeatureSerializable.CommonStaffs != null) { srcFeatureSerializable.CommonStaffs.ForEach(c => result.CommonStaffs.Add(new CommonStaffSerializable() { Extension = c.Extension, FileType = c.FileType, FileName = c.FileName, FileProject = c.FileProject, FileDefaultProjectNameSpace = c.FileDefaultProjectNameSpace, FileFolder = c.FileFolder, T4Template = c.T4Template })); } return(result); }
public FeatureSerializable GetSelectedFeatureCommonShallowCopy(string FileType, string FileName, string T4Template) { FeatureSerializable result = null; if (SelectedFeature == null) { return(result); } result = SelectedFeature.FeatureContextSerializableGetShallowCopy(); CommonStaffSerializable commonStaffItem = result.CommonStaffs.Where(c => c.FileType == FileType).FirstOrDefault(); if (commonStaffItem == null) { result.CommonStaffs.Add( commonStaffItem = new CommonStaffSerializable() { FileType = FileType }); } commonStaffItem.FileName = FileName; commonStaffItem.FileProject = this.DestinationProjectName; commonStaffItem.FileDefaultProjectNameSpace = this.DefaultProjectNameSpace; commonStaffItem.FileFolder = this.DestinationFolder; commonStaffItem.T4Template = T4Template; return(result); }
public override void SaveBtnCommandAction(Object param) { FeatureContextSerializable localFeatureContext = (SelectFeatureFolderUC.DataContext as SelectFeatureFolderViewModel).SerializableFeatureContext; FeatureSerializable featureSerializable = (GenerateUC.DataContext as GenerateCommonStaffViewModel).GeneratedFeature; FeatureSerializable existedFeatureSerializable = (SelectFeatureFolderUC.DataContext as SelectFeatureFolderViewModel).SelectedFeature; existedFeatureSerializable.CommonStaffs = featureSerializable.CommonStaffs; (SelectFeatureFolderUC.DataContext as SelectFeatureFolderViewModel).OnCreatedActionsChanged(); string projectName = ""; if ((FeatureUC.DataContext as FeatureViewModel).SelectedDbContext.CodeElementRef != null) { if ((FeatureUC.DataContext as FeatureViewModel).SelectedDbContext.CodeElementRef.ProjectItem != null) { projectName = (FeatureUC.DataContext as FeatureViewModel).SelectedDbContext.CodeElementRef.ProjectItem.ContainingProject.UniqueName; } } if (!string.IsNullOrEmpty(projectName)) { string locFileName = Path.Combine(projectName, (FeatureUC.DataContext as FeatureViewModel).SelectedDbContext.CodeElementFullName, (FeatureUC.DataContext as FeatureViewModel).FeatureContextSufix, JsonExtension); locFileName = locFileName.Replace("\\", "."); SolutionDirectory = System.IO.Path.GetDirectoryName(Dte.Solution.FullName); locFileName = Path.Combine(SolutionDirectory, locFileName); string jsonString = JsonConvert.SerializeObject(localFeatureContext); File.WriteAllText(locFileName, jsonString); } try { SolutionDirectory = System.IO.Path.GetDirectoryName(Dte.Solution.FullName); string FlNm = Path.Combine( (InvitationUC.DataContext as InvitationViewModel).DestinationProjectRootFolder, (SelectFeatureFolderUC.DataContext as SelectFeatureFolderViewModel).DestinationFolder, (SelectFeatureFolderUC.DataContext as SelectFeatureFolderViewModel).FileName + (GenerateUC.DataContext as GenerateCommonStaffViewModel).FileExtension); File.WriteAllText(FlNm, (GenerateUC.DataContext as GenerateCommonStaffViewModel).GenerateText); DestinationProject.ProjectItems.AddFromFile(FlNm); MessageBox.Show(SuccessNotification, "Done", MessageBoxButton.OK, MessageBoxImage.Information); } catch (Exception e) { MessageBox.Show("Error: " + e.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
public virtual void UiBtnCommandUpdateAction(Object param) { if (this.ModifyFeatureVM == null) { this.ModifyFeatureVM = new ModifyFeatureViewModel(); } this.ModifyFeatureVM.DbContext = this.DbContext; this.ModifyFeatureVM.AllowedFileTypes = this.AllowedFileTypes; this.ModifyFeatureVM.Feature = SelectedFeature; WindowModifyFeature dlg = new WindowModifyFeature(this.ModifyFeatureVM); Nullable <bool> dialogResult = dlg.ShowDialog(); if (dialogResult.HasValue) { if (dialogResult.Value) { _SelectedFeature = null; SelectedFeature = this.ModifyFeatureVM.Feature; } } }
public void DoGenerateFeature(DTE2 Dte, ITextTemplating textTemplating, string T4TempatePath, DbContextSerializable SerializableDbContext, FeatureContextSerializable SerializableFeatureContext, FeatureSerializable feature, AllowedFileTypesSerializable AllowedFileTypes, string defaultProjectNameSpace = null) { this.GenerateText = ""; this.GenerateError = ""; IsReady.DoNotify(this, false); if ((feature == null) || (SerializableDbContext == null) || (SerializableFeatureContext == null)) { return; } GeneratedFeature = feature; ITextTemplatingSessionHost textTemplatingSessionHost = (ITextTemplatingSessionHost)textTemplating; textTemplatingSessionHost.Session = textTemplatingSessionHost.CreateSession(); TPCallback tpCallback = new TPCallback(); textTemplatingSessionHost.Session["AllowedFileTypes"] = AllowedFileTypes; textTemplatingSessionHost.Session["Feature"] = GeneratedFeature; textTemplatingSessionHost.Session["FeatureContext"] = SerializableFeatureContext; textTemplatingSessionHost.Session["Context"] = SerializableDbContext; textTemplatingSessionHost.Session["DefaultProjectNameSpace"] = string.IsNullOrEmpty(defaultProjectNameSpace) ? "" : defaultProjectNameSpace; if (string.IsNullOrEmpty(GenText)) { this.GenerateText = textTemplating.ProcessTemplate(T4TempatePath, File.ReadAllText(T4TempatePath), tpCallback); } else { this.GenerateText = textTemplating.ProcessTemplate(T4TempatePath, GenText, tpCallback); } FileExtension = tpCallback.FileExtension; if (tpCallback.ProcessingErrors != null) { foreach (TPError tpError in tpCallback.ProcessingErrors) { this.GenerateError += tpError.ToString() + "\n"; } } IsReady.DoNotify(this, string.IsNullOrEmpty(this.GenerateError)); }