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