protected override void Do()
        {
            var entries = new List <FileEntry>();

            if (Folders.Any())
            {
                entries.AddRange(FolderDao.GetFolders(Folders.ToArray()));
            }
            if (Files.Any())
            {
                entries.AddRange(FileDao.GetFiles(Files.ToArray()));
            }
            entries.ForEach(x =>
            {
                CancellationToken.ThrowIfCancellationRequested();

                FileMarker.RemoveMarkAsNew(x, ((IAccount)Thread.CurrentPrincipal.Identity).ID);

                if (x.FileEntryType == FileEntryType.File)
                {
                    ProcessedFile(x.ID.ToString());
                }
                else
                {
                    ProcessedFolder(x.ID.ToString());
                }
                ProgressStep();
            });

            var newrootfolder = FileMarker
                                .GetRootFoldersIdMarkedAsNew()
                                .Select(item => string.Format("new_{{\"key\"? \"{0}\", \"value\"? \"{1}\"}}", item.Key, item.Value));

            Status += string.Join(SPLIT_CHAR, newrootfolder.ToArray());
        }
        protected override void Do()
        {
            Percentage = 0;

            var entries = Enumerable.Empty <FileEntry>();

            if (Folders.Any())
            {
                entries = entries.Concat(FolderDao.GetFolders(Folders.ToArray()));
            }

            if (Files.Any())
            {
                entries = entries.Concat(FileDao.GetFiles(Files.ToArray()));
            }

            entries.ToList().ForEach(x =>
            {
                if (Canceled)
                {
                    return;
                }

                FileMarker.RemoveMarkAsNew(x, Owner);

                if (x is File)
                {
                    ProcessedFile(x.ID.ToString());
                    ResultedFile(x.ID.ToString());
                }
                else
                {
                    ProcessedFolder(x.ID.ToString());
                    ResultedFolder(x.ID.ToString());
                }

                ProgressStep();
            });

            var rootFolderIdAsNew =
                FileMarker.GetRootFoldersIdMarkedAsNew()
                .Select(item => string.Format("new_{{\"key\"? \"{0}\", \"value\"? \"{1}\"}}", item.Key, item.Value));

            Status += string.Join(SplitCharacter, rootFolderIdAsNew.ToArray());

            IsCompleted = true;
        }