private void SafelyRemoveSampleDataAndRootFolder(SampleDataSet dataSet, bool forceDeleteFiles) { dataSet.Close(); if (forceDeleteFiles) { SampleDataCollection.DeleteFolder(dataSet.SampleDataFolder, false); } else { SampleDataCollection.DeleteFolder(dataSet.AssetFilesFolder, true); SampleDataCollection.DeleteFolder(dataSet.SampleDataFolder, true); } this.OnSampleDataRemoving(dataSet); this.dataSets.Remove(dataSet); if (Enumerable.FirstOrDefault <SampleDataSet>(Enumerable.Where <SampleDataSet>((IEnumerable <SampleDataSet>) this.dataSets, (Func <SampleDataSet, bool>)(item => item.Context == dataSet.Context))) != null) { return; } string path = Path.Combine(Path.GetDirectoryName(this.projectContext.ProjectPath), dataSet.Context.DataRootFolder); IProject project = (IProject)this.projectContext.GetService(typeof(IProject)); IProjectItem projectItem = project.FindItem(DocumentReference.Create(path)); if (projectItem == null || Enumerable.FirstOrDefault <IProjectItem>(projectItem.Children) != null) { return; } project.RemoveItems(0 != 0, projectItem); SampleDataCollection.DeleteFolder(dataSet.Context.DataRootFolder, true); }
private bool LoadSampleDataSetFromProjectInfo(SampleDataCollection.SampleDataSetProjectInfo sampleDataInfo) { if (sampleDataInfo.XsdItem == null || sampleDataInfo.XamlItem == null || (!Microsoft.Expression.Framework.Documents.PathHelper.FileExists(sampleDataInfo.XsdItem.DocumentReference.Path) || !Microsoft.Expression.Framework.Documents.PathHelper.FileExists(sampleDataInfo.XamlItem.DocumentReference.Path))) { return(false); } bool enableAtRuntime = !string.Equals(sampleDataInfo.XamlItem.Properties["BuildAction"], SampleDataSet.DesignTimeBuildType); SampleDataSet dataSet = this.InstantiateSampleDataSet(sampleDataInfo.DataSetContext, sampleDataInfo.Name, enableAtRuntime); dataSet.Load(); if (!dataSet.IsValid) { dataSet.Close(); return(false); } this.dataSets.Add(dataSet); this.OnSampleDataAdded(dataSet); return(true); }