Inheritance: INotifyPropertyChanged
Example #1
0
    public void ConfigureCallback()
    {
        try
        {
            var project = currentProjectFinder.GetCurrentProject();
            if (UnsaveProjectChecker.HasUnsavedPendingChanges(project))
            {
                return;
            }

            var projectReader = new ProjectReader(project.FullName);

            var model     = new ConfigureWindowModel();
            var defaulter = new Defaulter();
            defaulter.ToModel(projectReader, model);

            var configureWindow = new ConfigureWindow(model);
            new WindowInteropHelper(configureWindow)
            {
                Owner = GetActiveWindow()
            };
            if (configureWindow.ShowDialog().GetValueOrDefault())
            {
                Configure(model, project);
            }
        }
        catch (COMException exception)
        {
            exceptionDialog.HandleException(exception);
        }
        catch (Exception exception)
        {
            exceptionDialog.HandleException(exception);
        }
    }
Example #2
0
    public void FromModel(CosturaProjectInjector projectInjector, ConfigureWindowModel configureWindowModel)
    {
        if (!configureWindowModel.DeriveTargetPathFromBuildEngine)
        {
            projectInjector.TargetPath = configureWindowModel.TargetPath;
        }


        if (!configureWindowModel.Overwrite)
        {
            projectInjector.Overwrite = false;
        }

        if (!configureWindowModel.IncludeDebugSymbols)
        {
            projectInjector.IncludeDebugSymbols = false;
        }

        if (!configureWindowModel.DeleteReferences)
        {
            projectInjector.DeleteReferences = false;
        }


        if (configureWindowModel.MessageImportance != MessageImportance.Low)
        {
            projectInjector.MessageImportance = configureWindowModel.MessageImportance;
        }
        projectInjector.ToolsDirectory = configureWindowModel.ToolsDirectory;
    }
Example #3
0
    public void FromModel(CosturaProjectInjector projectInjector, ConfigureWindowModel configureWindowModel)
    {
        if (!configureWindowModel.DeriveTargetPathFromBuildEngine)
        {
            projectInjector.TargetPath = configureWindowModel.TargetPath;
        }

        if (!configureWindowModel.Overwrite)
        {
            projectInjector.Overwrite = false;
        }

        if (!configureWindowModel.IncludeDebugSymbols)
        {
            projectInjector.IncludeDebugSymbols = false;
        }

        if (!configureWindowModel.DeleteReferences)
        {
            projectInjector.DeleteReferences = false;
        }
        if (!configureWindowModel.RunPostBuildEvents)
        {
            projectInjector.RunPostBuildEvents = false;
        }

        if (configureWindowModel.MessageImportance != MessageImportance.Low)
        {
            projectInjector.MessageImportance = configureWindowModel.MessageImportance;
        }
        projectInjector.ToolsDirectory = configureWindowModel.ToolsDirectory;
    }
    void Configure(ConfigureWindowModel model, Project project)
    {
        var directoryInfo = fullPathResolver.GetFullPath(model.ToolsDirectory, project);
        var targetFile    = new FileInfo(Path.Combine(directoryInfo.FullName, "NotifyPropertyWeaverMsBuildTask.dll"));

        if (!targetFile.Exists || VersionChecker.IsVersionNewer(targetFile))
        {
            if (!fileExporter.ExportTask(directoryInfo))
            {
                taskFileReplacer.AddFile(directoryInfo);
            }
        }

        if (model.IncludeAttributeAssembly)
        {
            var frameworkType = FrameworkTypeReader.GetFrameworkType(project.FullName);
            fileExporter.ExportAttribute(fullPathResolver.GetFullPath(model.DependenciesDirectory, project), frameworkType);
        }

        var defaulter       = new Defaulter();
        var projectInjector = new NotifyPropertyWeaverProjectInjector
        {
            ProjectFile = project.FullName
        };

        defaulter.FromModel(projectInjector, model);
        projectInjector.Execute();
    }
Example #5
0
    public void ConfigureCallback()
    {
        try
        {
            var project = currentProjectFinder.GetCurrentProject();
            if (UnsaveProjectChecker.HasUnsavedPendingChanges(project))
            {
                return;
            }

            var projectReader = new ProjectReader(project.FullName);

            var model = new ConfigureWindowModel();
            var defaulter = new Defaulter();
            defaulter.ToModel(projectReader, model);

            var configureWindow = new ConfigureWindow(model);
            new WindowInteropHelper(configureWindow)
                {
                    Owner = GetActiveWindow()
                };
            if (configureWindow.ShowDialog().GetValueOrDefault())
            {
                Configure(model, project);
            }
        }
        catch (COMException exception)
        {
            exceptionDialog.HandleException(exception);
        }
        catch (Exception exception)
        {
            exceptionDialog.HandleException(exception);
        }
    }
    public ConfigureWindow(ConfigureWindowModel model)
    {
        Model = model;
        InitializeComponent();

        DataContext = Model;
    }
    public ConfigureWindow(ConfigureWindowModel model)
    {
        Model = model;
        InitializeComponent();

        DataContext = Model;
    }
    void Configure(ConfigureWindowModel model, Project project)
    {
        var directoryInfo = fullPathResolver.GetFullPath(model.ToolsDirectory, project);
        var targetFile = new FileInfo(Path.Combine(directoryInfo.FullName, "NotifyPropertyWeaverMsBuildTask.dll"));
        if (!targetFile.Exists || VersionChecker.IsVersionNewer(targetFile))
        {
            if (!fileExporter.ExportTask(directoryInfo))
            {
                taskFileReplacer.AddFile(directoryInfo);
            }
        }

        if (model.IncludeAttributeAssembly)
        {
            var frameworkType = FrameworkTypeReader.GetFrameworkType(project.FullName);
            fileExporter.ExportAttribute(fullPathResolver.GetFullPath(model.DependenciesDirectory, project), frameworkType);
        }

        var defaulter = new Defaulter();
        var projectInjector = new NotifyPropertyWeaverProjectInjector
                                  {
                                      ProjectFile = project.FullName
                                  };
        defaulter.FromModel(projectInjector, model);
        projectInjector.Execute();
    }
Example #9
0
 public void ToModel(ProjectReader projectReader, ConfigureWindowModel configureWindowModel)
 {
     configureWindowModel.MessageImportance               = projectReader.MessageImportance.GetValueOrDefault(MessageImportance.Low);
     configureWindowModel.TargetPath                      = projectReader.TargetPath;
     configureWindowModel.Overwrite                       = projectReader.Overwrite.GetValueOrDefault(true);
     configureWindowModel.IncludeDebugSymbols             = projectReader.IncludeDebugSymbols.GetValueOrDefault(true);
     configureWindowModel.DeleteReferences                = projectReader.DeleteReferences.GetValueOrDefault(true);
     configureWindowModel.DeriveTargetPathFromBuildEngine = projectReader.TargetPath == null;
     configureWindowModel.ToolsDirectory                  = GetValueOrDefault(projectReader.ToolsDirectory, @"$(SolutionDir)Tools\");
 }
Example #10
0
 public void ToModel(ProjectReader projectReader, ConfigureWindowModel configureWindowModel)
 {
     configureWindowModel.MessageImportance = projectReader.MessageImportance.GetValueOrDefault(MessageImportance.Low);
     configureWindowModel.TargetPath = projectReader.TargetPath;
     configureWindowModel.Overwrite = projectReader.Overwrite.GetValueOrDefault(true);
     configureWindowModel.IncludeDebugSymbols = projectReader.IncludeDebugSymbols.GetValueOrDefault(true);
     configureWindowModel.DeleteReferences = projectReader.DeleteReferences.GetValueOrDefault(true);
     configureWindowModel.DeriveTargetPathFromBuildEngine = projectReader.TargetPath == null;
     configureWindowModel.ToolsDirectory = GetValueOrDefault(projectReader.ToolsDirectory, @"$(SolutionDir)Tools\");
 }
 public void ValidateTargetPath()
 {
     var model = new ConfigureWindowModel
                     {
                         TargetPath = null,
                         DeriveTargetPathFromBuildEngine = false,
                         ToolsDirectory = "foo,"
                     };
     Assert.IsNotNullOrEmpty(model.GetErrors());
     model.TargetPath = string.Empty;
     Assert.IsNotNullOrEmpty(model.GetErrors());
     model.TargetPath = "a";
     Assert.IsNull(model.GetErrors());
 }
 public void ValidateTargetNode()
 {
     var model = new ConfigureWindowModel
                     {
                         DeriveTargetPathFromBuildEngine = true,
                         EventInvokerName = "foo",
                         ToolsDirectory = "foo,",
                     };
     Assert.IsNotNullOrEmpty(model.GetErrors());
     model.TargetNode = string.Empty;
     Assert.IsNotNullOrEmpty(model.GetErrors());
     model.TargetNode = "AfterCompile";
     Assert.IsNull(model.GetErrors());
 }
Example #13
0
    public void ValidateTargetPath()
    {
        var model = new ConfigureWindowModel
        {
            TargetPath = null,
            DeriveTargetPathFromBuildEngine = false,
            ToolsDirectory = "foo,"
        };

        Assert.IsNotNullOrEmpty(model.GetErrors());
        model.TargetPath = string.Empty;
        Assert.IsNotNullOrEmpty(model.GetErrors());
        model.TargetPath = "a";
        Assert.IsNull(model.GetErrors());
    }
    public void ValidateTargetNode()
    {
        var model = new ConfigureWindowModel
        {
            DeriveTargetPathFromBuildEngine = true,
            EventInvokerName = "foo",
            ToolsDirectory   = "foo,",
        };

        Assert.IsNotNullOrEmpty(model.GetErrors());
        model.TargetNode = string.Empty;
        Assert.IsNotNullOrEmpty(model.GetErrors());
        model.TargetNode = "AfterCompile";
        Assert.IsNull(model.GetErrors());
    }
 public void ValidateEventInvokerName()
 {
     Debug.WriteLine(Guid.NewGuid().ToString());
     var model = new ConfigureWindowModel
     {
         EventInvokerName = null,
         DeriveTargetPathFromBuildEngine = true,
         ToolsDirectory = "foo",
         TargetNode = "AfterCompile",
     };
     Assert.IsNotNullOrEmpty(model.GetErrors());
     model.EventInvokerName = string.Empty;
     Assert.IsNotNullOrEmpty(model.GetErrors());
     model.EventInvokerName = "a";
     Assert.IsNull(model.GetErrors());
 }
    public void ValidateEventInvokerName()
    {
        Debug.WriteLine(Guid.NewGuid().ToString());
        var model = new ConfigureWindowModel
        {
            EventInvokerName = null,
            DeriveTargetPathFromBuildEngine = true,
            ToolsDirectory = "foo",
            TargetNode     = "AfterCompile",
        };

        Assert.IsNotNullOrEmpty(model.GetErrors());
        model.EventInvokerName = string.Empty;
        Assert.IsNotNullOrEmpty(model.GetErrors());
        model.EventInvokerName = "a";
        Assert.IsNull(model.GetErrors());
    }
 public void ValidateDependenciesDirectory()
 {
     var model = new ConfigureWindowModel
                     {
                         IncludeAttributeAssembly = true,
                         DependenciesDirectory = null,
                         DeriveTargetPathFromBuildEngine = true,
                         EventInvokerName = "foo",
                         ToolsDirectory = "foo",
                         TargetNode = "AfterCompile",
                     };
     Assert.IsNotNullOrEmpty(model.GetErrors());
     model.DependenciesDirectory = string.Empty;
     Assert.IsNotNullOrEmpty(model.GetErrors());
     model.DependenciesDirectory = "a";
     Assert.IsNull(model.GetErrors());
 }
    public void ValidateDependenciesDirectory()
    {
        var model = new ConfigureWindowModel
        {
            IncludeAttributeAssembly        = true,
            DependenciesDirectory           = null,
            DeriveTargetPathFromBuildEngine = true,
            EventInvokerName = "foo",
            ToolsDirectory   = "foo",
            TargetNode       = "AfterCompile",
        };

        Assert.IsNotNullOrEmpty(model.GetErrors());
        model.DependenciesDirectory = string.Empty;
        Assert.IsNotNullOrEmpty(model.GetErrors());
        model.DependenciesDirectory = "a";
        Assert.IsNull(model.GetErrors());
    }
Example #19
0
    void Configure(ConfigureWindowModel model, Project project)
    {
        var directoryInfo = fullPathResolver.GetFullPath(model.ToolsDirectory, project);
        var targetFile = new FileInfo(Path.Combine(directoryInfo.FullName, "Costura.dll"));
        if (!targetFile.Exists || VersionChecker.IsVersionNewer(targetFile))
        {
            if (!fileExporter.ExportTask(directoryInfo))
            {
                taskFileReplacer.AddFile(directoryInfo);
            }
        }

        var defaulter = new Defaulter();
        var projectInjector = new CosturaProjectInjector
                                  {
                                      ProjectFile = project.FullName
                                  };
        defaulter.FromModel(projectInjector, model);
        projectInjector.Execute();
    }
Example #20
0
    void Configure(ConfigureWindowModel model, Project project)
    {
        var directoryInfo = fullPathResolver.GetFullPath(model.ToolsDirectory, project);
        var targetFile    = new FileInfo(Path.Combine(directoryInfo.FullName, "Costura.dll"));

        if (!targetFile.Exists || VersionChecker.IsVersionNewer(targetFile))
        {
            if (!fileExporter.ExportTask(directoryInfo))
            {
                taskFileReplacer.AddFile(directoryInfo);
            }
        }

        var defaulter       = new Defaulter();
        var projectInjector = new CosturaProjectInjector
        {
            ProjectFile = project.FullName
        };

        defaulter.FromModel(projectInjector, model);
        projectInjector.Execute();
    }
    public void FromModel(NotifyPropertyWeaverProjectInjector projectInjector, ConfigureWindowModel configureWindowModel)
    {
        if (!configureWindowModel.CheckForEquality)
        {
            projectInjector.CheckForEquality = false;
        }
        if (configureWindowModel.ProcessFields)
        {
            projectInjector.ProcessFields = true;
        }
        if (configureWindowModel.CheckForIsChanged)
        {
            projectInjector.CheckForIsChanged = true;
        }
        projectInjector.IncludeAttributeAssembly = configureWindowModel.IncludeAttributeAssembly;

        if (!configureWindowModel.DeriveTargetPathFromBuildEngine)
        {
            projectInjector.TargetPath = configureWindowModel.TargetPath;
        }


        if (!configureWindowModel.TryToWeaveAllTypes)
        {
            projectInjector.TryToWeaveAllTypes = false;
        }
        if (configureWindowModel.MessageImportance != MessageImportance.Low)
        {
            projectInjector.MessageImportance = configureWindowModel.MessageImportance;
        }
        projectInjector.Target         = configureWindowModel.TargetNode;
        projectInjector.ToolsDirectory = configureWindowModel.ToolsDirectory;

        projectInjector.DependenciesDirectory = configureWindowModel.DependenciesDirectory;
        if (configureWindowModel.EventInvokerName != "OnPropertyChanged")
        {
            projectInjector.EventInvokerName = configureWindowModel.EventInvokerName;
        }
    }
 public void ToModel(ProjectReader projectReader, ConfigureWindowModel configureWindowModel)
 {
     configureWindowModel.CheckForEquality   = projectReader.CheckForEquality.GetValueOrDefault(true);
     configureWindowModel.CheckForIsChanged  = projectReader.CheckForIsChanged.GetValueOrDefault(false);
     configureWindowModel.TryToWeaveAllTypes = projectReader.TryToWeaveAllTypes.GetValueOrDefault(true);
     configureWindowModel.ProcessFields      = projectReader.ProcessFields.GetValueOrDefault(false);
     configureWindowModel.MessageImportance  = projectReader.MessageImportance.GetValueOrDefault(MessageImportance.Low);
     if (projectReader.TargetNode == null)
     {
         configureWindowModel.TargetNode = "AfterCompile";
     }
     else
     {
         configureWindowModel.TargetNode = projectReader.TargetNode;
     }
     configureWindowModel.TargetPath = projectReader.TargetPath;
     configureWindowModel.DeriveTargetPathFromBuildEngine = projectReader.TargetPath == null;
     configureWindowModel.DependenciesDirectory           = GetValueOrDefault(projectReader.DependenciesDirectory, @"$(SolutionDir)Lib\");
     configureWindowModel.ToolsDirectory           = GetValueOrDefault(projectReader.ToolsDirectory, @"$(SolutionDir)Tools\");
     configureWindowModel.EventInvokerName         = GetValueOrDefault(projectReader.EventInvokerName, "OnPropertyChanged");
     configureWindowModel.IncludeAttributeAssembly = !string.IsNullOrWhiteSpace(projectReader.DependenciesDirectory);
 }
 public void ToModel(ProjectReader projectReader, ConfigureWindowModel configureWindowModel)
 {
     configureWindowModel.CheckForEquality = projectReader.CheckForEquality.GetValueOrDefault(true);
     configureWindowModel.CheckForIsChanged = projectReader.CheckForIsChanged.GetValueOrDefault(false);
     configureWindowModel.TryToWeaveAllTypes = projectReader.TryToWeaveAllTypes.GetValueOrDefault(true);
     configureWindowModel.ProcessFields = projectReader.ProcessFields.GetValueOrDefault(false);
     configureWindowModel.MessageImportance = projectReader.MessageImportance.GetValueOrDefault(MessageImportance.Low);
     if (projectReader.TargetNode == null)
     {
         configureWindowModel.TargetNode = "AfterCompile";
     }
     else
     {
         configureWindowModel.TargetNode = projectReader.TargetNode;
     }
     configureWindowModel.TargetPath = projectReader.TargetPath;
     configureWindowModel.DeriveTargetPathFromBuildEngine = projectReader.TargetPath == null;
     configureWindowModel.DependenciesDirectory = GetValueOrDefault(projectReader.DependenciesDirectory, @"$(SolutionDir)Lib\");
     configureWindowModel.ToolsDirectory = GetValueOrDefault(projectReader.ToolsDirectory, @"$(SolutionDir)Tools\");
     configureWindowModel.EventInvokerName = GetValueOrDefault(projectReader.EventInvokerName, "OnPropertyChanged");
     configureWindowModel.IncludeAttributeAssembly = !string.IsNullOrWhiteSpace(projectReader.DependenciesDirectory);
 }
    public void FromModel(NotifyPropertyWeaverProjectInjector projectInjector, ConfigureWindowModel configureWindowModel)
    {
        if (!configureWindowModel.CheckForEquality)
        {
            projectInjector.CheckForEquality = false;
        }
        if (configureWindowModel.ProcessFields)
        {
            projectInjector.ProcessFields = true;
        }
        if (configureWindowModel.CheckForIsChanged)
        {
            projectInjector.CheckForIsChanged = true;
        }
        projectInjector.IncludeAttributeAssembly = configureWindowModel.IncludeAttributeAssembly;

        if (!configureWindowModel.DeriveTargetPathFromBuildEngine)
        {
            projectInjector.TargetPath = configureWindowModel.TargetPath;
        }

        if (!configureWindowModel.TryToWeaveAllTypes)
        {
            projectInjector.TryToWeaveAllTypes = false;
        }
        if (configureWindowModel.MessageImportance != MessageImportance.Low)
        {
            projectInjector.MessageImportance = configureWindowModel.MessageImportance;
        }
        projectInjector.Target = configureWindowModel.TargetNode;
        projectInjector.ToolsDirectory = configureWindowModel.ToolsDirectory;

        projectInjector.DependenciesDirectory = configureWindowModel.DependenciesDirectory;
        if (configureWindowModel.EventInvokerName != "OnPropertyChanged")
        {
            projectInjector.EventInvokerName = configureWindowModel.EventInvokerName;
        }
    }