Esempio n. 1
0
        public void ForksWrapper_ForkDeleteTest()
        {
            var store = new StackExchangeRedisKeyValueStore("localhost:6379");

            store.FlushKeys("KVSF*");
            var manager = new ForksManager <StackExchangeRedisKeyValueStore.StackExchangeRedisDataTypesEnum>(store);

            manager.CreateApp(1, "test", "some test app");

            var masterWrapper = manager.GetWrapper(1);

            var forkId  = manager.CreateFork("test2", "some test fork", 1);
            var forkId2 = manager.CreateFork("test3", "some test fork", 1);
            var forkId3 = manager.CreateFork("test4", "some test fork", 2);

            manager.DeleteFork(forkId3);
            manager.DeleteFork(forkId2);
            manager.DeleteFork(forkId);
        }
Esempio n. 2
0
        private static void ManageForks(ForksManager <StackExchangeRedisKeyValueStore.StackExchangeRedisDataTypesEnum> manager)
        {
            Console.Clear();
            DisplayForks(manager);

            Console.WriteLine("Manage forks");
            Console.WriteLine("1 - Create new fork");
            Console.WriteLine("2 - Merge forks");
            Console.WriteLine("3 - Prune fork");
            Console.WriteLine("4 - Delete fork");

            var input = Console.ReadLine();

            if (string.IsNullOrEmpty(input))
            {
                return;
            }

            var choice = int.Parse(input);

            switch (choice)
            {
            case 1:
                Console.WriteLine("New Name:");
                var name = Console.ReadLine();

                Console.WriteLine("Description:");
                var description = Console.ReadLine();

                Console.WriteLine("Parent fork Id (keep empty for new master fork):");
                var parentForkIdString = Console.ReadLine();

                int?parentFork = null;
                if (!string.IsNullOrEmpty(parentForkIdString))
                {
                    parentFork = int.Parse(parentForkIdString);
                }

                try
                {
                    var newForkId = manager.CreateFork(name, description, parentFork);
                    Console.WriteLine($"Fork {newForkId} was created");
                    Thread.Sleep(500);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                    Thread.Sleep(500);
                }
                return;

            case 2:
                DisplayForks(manager);

                Console.WriteLine("Choose origin fork id");
                var originForkIdString = Console.ReadLine();

                if (string.IsNullOrEmpty(originForkIdString))
                {
                    return;
                }

                int originForkId = int.Parse(originForkIdString);

                Console.WriteLine("Choose target fork id");
                var targetForkIdString = Console.ReadLine();

                if (string.IsNullOrEmpty(targetForkIdString))
                {
                    return;
                }

                int targetForkId = int.Parse(targetForkIdString);

                try
                {
                    var newForkId = manager.MergeFork(originForkId, targetForkId);
                    Console.WriteLine($"Merged Fork {newForkId} was created");
                    Thread.Sleep(500);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                    Thread.Sleep(500);
                }

                return;

            case 3:
                DisplayForks(manager);

                Console.WriteLine("Choose fork id to prune (create new master)");
                var pruneForkIdString = Console.ReadLine();

                if (string.IsNullOrEmpty(pruneForkIdString))
                {
                    return;
                }

                int pruneForkId = int.Parse(pruneForkIdString);

                try
                {
                    var newForkId = manager.PruneForks(pruneForkId);
                    Console.WriteLine($"New master fork {newForkId} was created from fork {pruneForkId}");
                    Thread.Sleep(500);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                    Thread.Sleep(500);
                }

                return;

            case 4:
                DisplayForks(manager);

                Console.WriteLine("Choose fork id to delete (Only leaves)");
                var deleteForkIdString = Console.ReadLine();

                if (string.IsNullOrEmpty(deleteForkIdString))
                {
                    return;
                }

                int deleteForkId = int.Parse(deleteForkIdString);

                try
                {
                    var deleted = manager.DeleteFork(deleteForkId);
                    var not     = deleted ? " " : " not ";
                    Console.WriteLine($"Fork {deleteForkId} was{not}deleted");
                    Thread.Sleep(500);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                    Thread.Sleep(500);
                }

                return;

            default:
                break;
            }
        }