private MigratingMSBuildStore(Microsoft.Expression.Framework.Documents.DocumentReference documentReference, IServiceProvider serviceProvider) { this.DocumentReference = documentReference; this.serviceProvider = serviceProvider; this.AttemptToMigrate = (bool callerSuccess) => { if (!callerSuccess) { return(callerSuccess); } try { ProjectPathHelper.AttemptToMakeWritable(this.DocumentReference, this.serviceProvider); this.Save(); IProjectStore projectStore = MSBuildBasedProjectStore.CreateInstance(this.DocumentReference, this.serviceProvider); this.NestedStore.Dispose(); this.NestedStore = projectStore; this.AttemptToMigrate = (bool value) => value; } catch (InvalidProjectFileException invalidProjectFileException) { this.LastError = invalidProjectFileException; } return(callerSuccess); }; }
public static IProjectStore CreateInstance(Microsoft.Expression.Framework.Documents.DocumentReference documentReference, IServiceProvider serviceProvider) { IProjectStore projectStore; try { projectStore = MSBuildBasedProjectStore.CreateInstance(documentReference, serviceProvider); } catch (InvalidProjectFileException invalidProjectFileException1) { InvalidProjectFileException invalidProjectFileException = invalidProjectFileException1; MigratingMSBuildStore migratingMSBuildStore = new MigratingMSBuildStore(documentReference, serviceProvider) { LastError = invalidProjectFileException, NestedStore = XmlMSBuildProjectStore.CreateInstance(documentReference, serviceProvider) }; projectStore = migratingMSBuildStore; } return(projectStore); }