Exemplo n.º 1
0
        public IRecord GetByFullName(string fullName)
        {
            var record = records.FirstOrDefault(x => x.FullName == fullName);

            if (record == null)
            {
                record = new Record(fullName);
                Add(record);
            }

            return record;
        }
        public IDatabase Revive()
        {
            var db = new Database();
            var allLines = File.ReadAllLines(path);
            var nonBlankLines = allLines.Where(line => !string.IsNullOrEmpty(line) && line.Trim() != string.Empty);
            foreach (var columns in nonBlankLines.Select(line => line.Split('\t')))
            {
                if (columns == null || columns.Length != 2)
                    throw new InvalidOperationException("Row of file didn't have 2 columns separated by a tab");

                var weight = decimal.Parse(columns[0]);
                var record = new Record(columns[1], weight);
                db.Add(record);
            }
            return db;
        }
Exemplo n.º 3
0
        private void DoScan()
        {
            var home = Environment.GetEnvironmentVariable("USERPROFILE");
            home = home ?? Path.Combine(Environment.GetEnvironmentVariable("HOMEDRIVE"), Environment.GetEnvironmentVariable("HOMEPATH"));
            var dirs = new Dictionary<string, int>();
            
            Console.WriteLine("Discovering new folders.");
            var currentDirs = new Dictionary<string, int>();
            foreach (IRecord record in Controller.GetOrderedRecords(true))
            {
                if (record.Provider == FileSystemProvider && Directory.Exists(record.Path))
                {
                    if (record.Path == home) continue; // Skip home folder - it's going to be in the list by default, and subfolders such as photos, music, etc. are probably not useful.
                    currentDirs.Add(record.Path, 1);
                    GetChildFolders(record.Path, dirs);
                }
            }

            int numDirsAdded = 0;
            Console.WriteLine("Adding directories:");
            foreach (string dir in dirs.Keys)
            {
                if (!currentDirs.ContainsKey(dir))
                {
                    Console.WriteLine(dir);
                    IRecord record = new Record(FileSystemProvider + "::" + dir, 0);
                    Controller.AddRecord(record);
                    numDirsAdded++;
                }
            }

            Controller.Save();

            Console.WriteLine(string.Format("Number of directories added: {0}.", numDirsAdded));
        }