public FromModel ( NotifyPropertyWeaverProjectInjector, projectInjector, ConfigureWindowModel, configureWindowModel ) : void | ||
projectInjector | NotifyPropertyWeaverProjectInjector, | |
configureWindowModel | ConfigureWindowModel, | |
return | void |
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;
}
}
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(); }