public void OnSelectedFeatureContext() { Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); if (DbContext == null) { FeatureContext = null; } string projectName = ""; if (SelectedDbContext.CodeElementRef != null) { if (SelectedDbContext.CodeElementRef.ProjectItem != null) { projectName = SelectedDbContext.CodeElementRef.ProjectItem.ContainingProject.UniqueName; } } if (!string.IsNullOrEmpty(projectName)) { string locFileName = Path.Combine(projectName, SelectedDbContext.CodeElementFullName, FeatureContextSufix, JsonExtension); locFileName = locFileName.Replace("\\", "."); string solutionDirectory = System.IO.Path.GetDirectoryName(Dte.Solution.FullName); locFileName = Path.Combine(solutionDirectory, locFileName); if (File.Exists(locFileName)) { string jsonString = File.ReadAllText(locFileName); FeatureContext = JsonConvert.DeserializeObject <FeatureContextSerializable>(jsonString); } else { FeatureContext = new FeatureContextSerializable(); } } }
public virtual void UiBtnCommandAddAction(Object param) { if (this.ModifyFeatureVM == null) { this.ModifyFeatureVM = new ModifyFeatureViewModel(); } this.ModifyFeatureVM.DbContext = this.DbContext; this.ModifyFeatureVM.AllowedFileTypes = this.AllowedFileTypes; this.ModifyFeatureVM.Feature = new FeatureSerializable() { FeatureName = "NoNameFeature" }; WindowModifyFeature dlg = new WindowModifyFeature(this.ModifyFeatureVM); Nullable <bool> dialogResult = dlg.ShowDialog(); if (dialogResult.HasValue) { if (dialogResult.Value) { if (FeatureContext == null) { FeatureContext = new FeatureContextSerializable(); } if (FeatureContext.Features == null) { FeatureContext.Features = new List <FeatureSerializable>(); } FeatureContext.Features.Add(this.ModifyFeatureVM.Feature); Features.Add(this.ModifyFeatureVM.Feature); SelectedFeature = this.ModifyFeatureVM.Feature; } } }
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 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)); }