Esempio n. 1
0
        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();
                }
            }
        }
Esempio n. 2
0
        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;
                }
            }
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        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));
        }