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 void OnSelectedModelChanged() { //UpdateFoldersList(); if (string.IsNullOrEmpty(_T4SelectedFolder) || (SelectedModel == null)) { FileName = ""; WebAddress = null; CheckIsReady(); return; } bool isFileNameChanged = false; if (SelectedModel.CommonStaffs != null) { CommonStaffSerializable commonStaffSerializable = SelectedModel.CommonStaffs.Where(c => c.FileType == _T4SelectedFolder).FirstOrDefault(); if (commonStaffSerializable != null) { FileName = commonStaffSerializable.FileName; isFileNameChanged = true; } } string locFileName = null; if (!isFileNameChanged) { if (SelectedModel.ViewName == ContextItemViewName) { locFileName = TrimPrefix(Path.GetFileNameWithoutExtension(T4SelectedFolder)); } else { locFileName = SelectedModel.ViewName + TrimPrefix(Path.GetFileNameWithoutExtension(T4SelectedFolder)); } // FileName = GetHyphenedName(locFileName); FileName = locFileName; } locFileName = null; string[] files = Directory.GetFiles(Path.Combine(_T4RootFolder, T4SelectedFolder), "*.html"); if (files != null) { if (files.Length > 0) { locFileName = "file:///" + Path.GetFullPath(files[0]).Replace("\\", "/"); } } WebAddress = locFileName; CheckIsReady(); }
public override void SaveBtnCommandAction(Object param) { DbContextSerializable localDbContext = (CreateWebApiUC.DataContext as CreateWebApiViewModel).SerializableDbContext; ModelViewSerializable modelViewSerializable = (GenerateUC.DataContext as GenerateCommonStaffViewModel).GeneratedModelView; if (modelViewSerializable.ViewName == (CreateWebApiUC.DataContext as CreateWebApiViewModel).ContextItemViewName) { localDbContext.CommonStaffs = modelViewSerializable.CommonStaffs; if ((SelectFolderUC.DataContext as SelectFolderViewModel).SelectedModel != null) { (SelectFolderUC.DataContext as SelectFolderViewModel).SelectedModel.CommonStaffs = localDbContext.CommonStaffs; } if (localDbContext.CommonStaffs != null) { CommonStaffSerializable commonStaffSerializable = localDbContext.CommonStaffs .Where(c => c.FileType == (SelectFolderUC.DataContext as SelectFolderViewModel).T4SelectedFolder) .FirstOrDefault(); if (commonStaffSerializable != null) { commonStaffSerializable.Extension = (GenerateUC.DataContext as GenerateCommonStaffViewModel).FileExtension; } } } else { ModelViewSerializable existedModelViewSerializable = localDbContext.ModelViews.FirstOrDefault(mv => mv.ViewName == modelViewSerializable.ViewName); if (modelViewSerializable.CommonStaffs != null) { CommonStaffSerializable commonStaffSerializable = modelViewSerializable.CommonStaffs .Where(c => c.FileType == (SelectFolderUC.DataContext as SelectFolderViewModel).T4SelectedFolder) .FirstOrDefault(); if (commonStaffSerializable != null) { commonStaffSerializable.Extension = (GenerateUC.DataContext as GenerateCommonStaffViewModel).FileExtension; } } if (existedModelViewSerializable != null) { existedModelViewSerializable.ScalarProperties = modelViewSerializable.ScalarProperties; existedModelViewSerializable.CommonStaffs = modelViewSerializable.CommonStaffs; existedModelViewSerializable.UIFormProperties = modelViewSerializable.UIFormProperties; existedModelViewSerializable.UIListProperties = modelViewSerializable.UIListProperties; } else { localDbContext.ModelViews.Add(modelViewSerializable); } } (SelectFolderUC.DataContext as SelectFolderViewModel).OnCreatedActionsChanged(); string projectName = ""; if ((CreateWebApiUC.DataContext as CreateWebApiViewModel).SelectedDbContext.CodeElementRef != null) { if ((CreateWebApiUC.DataContext as CreateWebApiViewModel).SelectedDbContext.CodeElementRef.ProjectItem != null) { projectName = (CreateWebApiUC.DataContext as CreateWebApiViewModel).SelectedDbContext.CodeElementRef.ProjectItem.ContainingProject.UniqueName; } } if (!string.IsNullOrEmpty(projectName)) { string locFileName = Path.Combine(projectName, (CreateWebApiUC.DataContext as CreateWebApiViewModel).SelectedDbContext.CodeElementFullName, JsonExtension); locFileName = locFileName.Replace("\\", "."); SolutionDirectory = System.IO.Path.GetDirectoryName(Dte.Solution.FullName); locFileName = Path.Combine(SolutionDirectory, locFileName); string jsonString = JsonConvert.SerializeObject(localDbContext); File.WriteAllText(locFileName, jsonString); } try { // insert code here SolutionDirectory = System.IO.Path.GetDirectoryName(Dte.Solution.FullName); string FlNm = Path.Combine( //SolutionDirectory, //Path.GetDirectoryName((CreateWebApiUC.DataContext as CreateWebApiViewModel).DestinationProject), (InvitationUC.DataContext as InvitationViewModel).DestinationProjectRootFolder, (CreateWebApiUC.DataContext as CreateWebApiViewModel).DestinationFolder, (SelectFolderUC.DataContext as SelectFolderViewModel).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 static void UpdateDbContext(DTE2 Dte, Project DestinationProject, SolutionCodeElement SelectedDbContext, DbContextSerializable dbContextSerializable, ModelViewSerializable modelViewSerializable, string ContextItemViewName, string T4SelectedFolder, string DestinationProjectRootFolder, string DestinationFolder, string DestinationSubFolder, string FileName, string FileExtension, string GenerateText) { Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); if (modelViewSerializable.ViewName == ContextItemViewName) { dbContextSerializable.CommonStaffs = modelViewSerializable.CommonStaffs; if (dbContextSerializable.CommonStaffs == null) { dbContextSerializable.CommonStaffs = new List <CommonStaffSerializable>(); } CommonStaffSerializable commonStaffSerializable = dbContextSerializable.CommonStaffs .Where(c => c.FileType == T4SelectedFolder) .FirstOrDefault(); if (commonStaffSerializable != null) { commonStaffSerializable.Extension = FileExtension; } } else { ModelViewSerializable existedModelViewSerializable = dbContextSerializable.ModelViews.FirstOrDefault(mv => mv.ViewName == modelViewSerializable.ViewName); if (modelViewSerializable.CommonStaffs != null) { CommonStaffSerializable commonStaffSerializable = modelViewSerializable.CommonStaffs .Where(c => c.FileType == T4SelectedFolder) .FirstOrDefault(); if (commonStaffSerializable != null) { commonStaffSerializable.Extension = FileExtension; } } if (existedModelViewSerializable != null) { existedModelViewSerializable.CommonStaffs = modelViewSerializable.CommonStaffs; existedModelViewSerializable.UIFormProperties = modelViewSerializable.UIFormProperties; existedModelViewSerializable.UIListProperties = modelViewSerializable.UIListProperties; } else { dbContextSerializable.ModelViews.Add(modelViewSerializable); } } string projectName = ""; if (SelectedDbContext.CodeElementRef != null) { if (SelectedDbContext.CodeElementRef.ProjectItem != null) { projectName = SelectedDbContext.CodeElementRef.ProjectItem.ContainingProject.UniqueName; } } string SolutionDirectory = System.IO.Path.GetDirectoryName(Dte.Solution.FullName); if (!string.IsNullOrEmpty(projectName)) { string locFileName = Path.Combine(projectName, SelectedDbContext.CodeElementFullName, "json"); locFileName = locFileName.Replace("\\", "."); locFileName = Path.Combine(SolutionDirectory, locFileName); string jsonString = JsonConvert.SerializeObject(dbContextSerializable); File.WriteAllText(locFileName, jsonString); } string FlNm = ""; if (string.IsNullOrEmpty(DestinationSubFolder)) { FlNm = Path.Combine( DestinationProjectRootFolder, DestinationFolder); } else { FlNm = Path.Combine( DestinationProjectRootFolder, DestinationFolder, DestinationSubFolder); } System.IO.Directory.CreateDirectory(FlNm); FlNm = Path.Combine(FlNm, FileName + FileExtension); File.WriteAllText(FlNm, GenerateText); DestinationProject.ProjectItems.AddFromFile(FlNm); }
public static ModelViewSerializable GetSelectedModelCommonShallowCopy(ModelViewSerializable SelectedModel, ObservableCollection <ModelViewUIFormProperty> UIFormProperties, ObservableCollection <ModelViewUIListProperty> UIListProperties, string DestinationProject, string DefaultProjectNameSpace, string DestinationFolder, string DestinationSubFolder, string FileType, string FileName) { ModelViewSerializable result = SelectedModel.ModelViewSerializableGetShallowCopy(); if (result.CommonStaffs == null) { result.CommonStaffs = new List <CommonStaffSerializable>(); } else { result.CommonStaffs = new List <CommonStaffSerializable>(); SelectedModel.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, //FileTypeData = c.FileTypeData })); } 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 = DestinationProject; commonStaffItem.FileDefaultProjectNameSpace = DefaultProjectNameSpace; if (string.IsNullOrEmpty(DestinationSubFolder)) { commonStaffItem.FileFolder = DestinationFolder; } else { commonStaffItem.FileFolder = Path.Combine(DestinationFolder, DestinationSubFolder); } if (UIFormProperties != null) { result.UIFormProperties = new List <ModelViewUIFormPropertySerializable>(); foreach (ModelViewUIFormProperty srcProp in UIFormProperties) { result.UIFormProperties.Add(srcProp.ModelViewUIFormPropertyAssignTo(new ModelViewUIFormPropertySerializable())); } } if (result.UIFormProperties == null) { result.UIFormProperties = new List <ModelViewUIFormPropertySerializable>(); } if (UIListProperties != null) { result.UIListProperties = new List <ModelViewUIListPropertySerializable>(); foreach (ModelViewUIListProperty srcProp in UIListProperties) { result.UIListProperties.Add(srcProp.ModelViewUIListPropertyAssignTo(new ModelViewUIListPropertySerializable())); } } if (result.UIListProperties == null) { result.UIListProperties = new List <ModelViewUIListPropertySerializable>(); } return(result); }