private void ResolveParentFolders(FrontendCompiler context, List <FileSystemResource> resolves)
        {
            Folder defaultRootFolder = this.GetDefaultRoot(context);

            foreach (FileSystemResource r in new List <FileSystemResource>(resolves))
            {
                if (!String.IsNullOrEmpty(r.ParentFolderIdFromName))
                {
                    PackageItem item;
                    Folder      newParentFolder = null;
                    if (context.TryGetItemById(r.ParentFolderIdFromName, out item))
                    {
                        newParentFolder = item as Folder;
                        if (newParentFolder == null)
                        {
                            context.OnMessage(new CompilerMessageEventArgs(CompilerMessage.InvalidFolderReference(r.ParentFolderIdFromName, item.GetType().Name), r.LineNumber));
                        }
                    }
                    else // did not find a matching id.
                    {
                        // TODO: come up with a better error message for this.
                        context.OnMessage(new CompilerMessageEventArgs(CompilerMessage.InvalidFolderReference(r.ParentFolderIdFromName, "not found"), r.LineNumber));
                    }

                    if (newParentFolder != null)
                    {
                        // If this is a "no name" folder then reparent all the contents to this new parent
                        if (r is Folder && String.IsNullOrEmpty(r.Name))
                        {
                            this.ReparentFolderChildren(context, (Folder)r, newParentFolder);
                            resolves.Remove(r); // folder is deleted, be sure not to try to continue to process it.
                        }
                        else // simply point our folder to this new parent.
                        {
                            r.ReparentFolder(newParentFolder);
                        }
                    }
                }
                else if (r.ParentFolder == null && !(r is Folder && ((Folder)r).External)) // if we didn't get a parent folder yet and this is not an external folder reference, default to the application folder.
                {
                    r.ReparentFolder(defaultRootFolder);
                }
            }
        }