Esempio n. 1
0
        private IEnumerable <PsfContentFolderRedirectionViewModel> SetRules(PsfRedirectedPathConfig redirectionPsfFixup)
        {
            if (redirectionPsfFixup == null)
            {
                yield break;
            }

            if (redirectionPsfFixup.KnownFolders != null)
            {
                foreach (var knownGroup in redirectionPsfFixup.KnownFolders.GroupBy(kf => kf.Id))
                {
                    foreach (var relativeGroup in knownGroup.SelectMany(k => k.RelativePaths).GroupBy(pdr => pdr.Base))
                    {
                        yield return(new PsfContentFolderRedirectionViewModel(knownGroup.Key, relativeGroup.Key, GetRules(relativeGroup)));
                    }
                }
            }


            if (redirectionPsfFixup.PackageDriveRelative != null)
            {
                foreach (var relativeGroup in redirectionPsfFixup.PackageDriveRelative.GroupBy(pdr => pdr.Base))
                {
                    yield return(new PsfContentFolderRedirectionViewModel(PsfContentFolderRelationTo.Drive, relativeGroup.Key, GetRules(relativeGroup)));
                }
            }

            if (redirectionPsfFixup.PackageRelative != null)
            {
                foreach (var relativeGroup in redirectionPsfFixup.PackageRelative.GroupBy(pr => pr.Base))
                {
                    yield return(new PsfContentFolderRedirectionViewModel(PsfContentFolderRelationTo.PackageRoot, relativeGroup.Key, GetRules(relativeGroup)));
                }
            }
        }
Esempio n. 2
0
        public PsfContentProcessRedirectionViewModel(string processRegularExpression, string fixupName, PsfRedirectedPathConfig redirectionPsfFixup) : base(processRegularExpression, fixupName)
        {
            this.Rules = new ChangeableCollection <PsfContentFolderRedirectionViewModel>(this.SetRules(redirectionPsfFixup));
            this.Rules.Commit();

            this.AddChildren(this.Rules);
        }