예제 #1
0
        private INode GetGoogleNodeByNameAndParent(INode parent, string name)
        {
            Console.WriteLine($"Getting google data for '{parent.Name}'");

            INode result = null;

            Console.WriteLine($"Enumerating {parent.Children.Count()} children, looking for {name} folder");
            foreach (var child in parent.Children)
            {
                Console.Write(".");

                if (child.Name == name)
                {
                    var childData = GoogleManager.GetTree(child.Id);

                    AddToCache(childData, parent.Id);
                    Console.WriteLine();
                    Console.WriteLine($"{name} folder found");
                    result = childData;
                    break;
                }
            }

            if (result == null)
            {
                throw new ApplicationException($"No folder named '{name}' found in Google Drive {parent.Name}");
            }

            return(result);
        }
예제 #2
0
        private INode LoadGoogleBackupsFolder(string parentId = "root", string folderName = "tst")
        {
            Console.WriteLine("Searching for first AKA root level stuff");
            var cachedId = GetFromCache(folderName, parentId);

            if (!String.IsNullOrEmpty(cachedId))
            {
                return(GoogleManager.GetTree(cachedId));
            }

            Console.WriteLine($"No saved data about {folderName} folder");
            var parent = GoogleManager.GetTree(parentId);

            var node = GetGoogleNodeByNameAndParent(parent, folderName);

            Console.WriteLine($"{folderName} loaded");
            AddToCache(node, parentId);
            return(node);
        }