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);
        }
Example #2
0
        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);
        }
Example #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);
            }
        }
Example #4
0
        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;
                }
            }
        }
Example #5
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));
        }