Esempio n. 1
0
        private int RemoveFolder(string p_source, string p_target)
        {
            var _result = 0;

            var _dirsA = Directory.EnumerateDirectories(p_source, "*.*", SearchOption.TopDirectoryOnly)
                        .Where(d => ContainsFolder(__config.SourceExcludeDirs, d) == false)
                        .ToList();

            var _dirsB = Directory.EnumerateDirectories(p_target, "*.*", SearchOption.TopDirectoryOnly)
                        .Where(d => ContainsFolder(__config.TargetExcludeDirs, d) == false)
                        .ToList();

            var _folder_compare = new FolderCompare(__config.Offset);
            var _dirB_only = (from dir in _dirsB
                              select dir.ToLower()).Except(_dirsA, _folder_compare);

            foreach (var _d in _dirB_only)
            {
                if (__config.RemoveDirs == true)
                {
                    try
                    {
                        ClearAttributes(_d);
                        Directory.Delete(_d, true);

                        Console.WriteLine("-[{0}]: {1}", ++__config.DeletedFolder, _d);
                    }
                    catch (Exception)
                    {
                        Console.WriteLine("-[{0}]: {1}", ++__config.UnDeletedFolder, _d);
                    }
                }
                else
                {
                    Console.WriteLine("-[{0}]: {1}", ++__config.UnDeletedFolder, _d);
                }

                _result++;
            }

            return _result;
        }
Esempio n. 2
0
        public int TraverseFile(string p_source, string p_target)
        {
            var _result = 0;

            if (Directory.Exists(p_source) && Directory.Exists(p_target))
            {
                _result += RemoveFiles(p_source, p_target);
                CopyFiles(p_source, p_target);

                var _dirsA = Directory.EnumerateDirectories(p_source, "*.*", SearchOption.TopDirectoryOnly)
                            .Where(d => ContainsFolder(__config.SourceExcludeDirs, d) == false)
                            .ToList();

                var _dirsB = Directory.EnumerateDirectories(p_target, "*.*", SearchOption.TopDirectoryOnly)
                            .Where(d => ContainsFolder(__config.TargetExcludeDirs, d) == false)
                            .ToList();

                var _folder_compare = new FolderCompare(__config.Offset);
                var _intersect = (from _dir in _dirsB
                                  select _dir.ToLower()).Intersect(_dirsA, _folder_compare);

                Parallel.ForEach(_intersect, _intB =>
                {
                    foreach (var _intA in _dirsA)
                    {
                        if (_folder_compare.Equals(_intA, _intB) == true)
                        {
                            _result += TraverseFile(_intA, _intB);
                            break;
                        }
                    }
                });
            }
            else
            {
                Console.WriteLine("not exists folder: {0} or {1}", p_source, p_target);
            }

            return _result;
        }
Esempio n. 3
0
        public async void CreateAsync_Works_DataMatches(
            Folder folder,
            User user,
            FolderCompare equalityComparer,
            List <EfRepo.FolderRepository> suts,
            List <EfRepo.UserRepository> efUserRepos,
            SqlRepo.FolderRepository sqlFolderRepo,
            SqlRepo.UserRepository sqlUserRepo)
        {
            var savedFolders = new List <Folder>();

            foreach (var sut in suts)
            {
                var i = suts.IndexOf(sut);

                var efUser = await efUserRepos[i].CreateAsync(user);
                sut.ClearChangeTracking();

                folder.UserId = efUser.Id;
                var postEfFolder = await sut.CreateAsync(folder);

                sut.ClearChangeTracking();

                var savedFolder = await sut.GetByIdAsync(folder.Id);

                savedFolders.Add(savedFolder);
            }

            var sqlUser = await sqlUserRepo.CreateAsync(user);

            folder.UserId = sqlUser.Id;
            var sqlFolder = await sqlFolderRepo.CreateAsync(folder);

            savedFolders.Add(await sqlFolderRepo.GetByIdAsync(sqlFolder.Id));

            var distinctItems = savedFolders.Distinct(equalityComparer);

            Assert.True(!distinctItems.Skip(1).Any());
        }
Esempio n. 4
0
        private int CopyFolder(string p_source, string p_target)
        {
            var _result = 0;

            var _dirsA = Directory.EnumerateDirectories(p_source, "*.*", SearchOption.TopDirectoryOnly)
                        .Where(d => ContainsFolder(__config.SourceExcludeDirs, d) == false)
                        .ToList();

            var _dirsB = Directory.EnumerateDirectories(p_target, "*.*", SearchOption.TopDirectoryOnly)
                        .Where(d => ContainsFolder(__config.TargetExcludeDirs, d) == false)
                        .ToList();

            var _folder_compare = new FolderCompare(__config.Offset);
            var _dirA_only = (from _d in _dirsA
                              select _d.ToLower()).Except(_dirsB, _folder_compare);

            foreach (var _d in _dirA_only)
            {
                if (__config.RemoveDirs == true)
                {
                    try
                    {
                        var _target = Path.Combine(p_target, Path.GetFileName(_d));
                        if (!Directory.Exists(_target))
                            Directory.CreateDirectory(_target);

                        CopyFiles(_d, _target);

                        Console.WriteLine("+[{0}]: {1}", ++__config.CopiedFolder, _d);
                    }
                    catch (Exception)
                    {
                        Console.WriteLine("+[{0}]: {1}", ++__config.UnCopiedFolder, _d);
                    }
                }
                else
                {
                    Console.WriteLine("+[{0}]: {1}", ++__config.UnCopiedFolder, _d);
                }

                _result++;
            }

            return _result;
        }