예제 #1
0
        public void FSGetIndex()
        {
            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Green, "\n:: Fetch a Specific Index ::\n");
            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.White, "\nAvailable Indexes:\n");
            ListIndexes();

            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.White, "\nEnter Index Id: ");
            var indexId = Console.ReadLine();

            var getIndexRequest = new GetIndexRequest();

            getIndexRequest.Name = indexId;
            Index retIndex;

            try
            {
                retIndex = FsAdminClient.GetIndex(getIndexRequest);
            }
            catch (Grpc.Core.RpcException e)
            {
                if ((e.Status.StatusCode == Grpc.Core.StatusCode.NotFound) ||
                    (e.Status.StatusCode == Grpc.Core.StatusCode.InvalidArgument))
                {
                    FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Red, "\nERROR: Index " + indexId + " not found!\n");
                }
                else
                {
                    Console.WriteLine("{0} Exception caught.", e);
                }
                return;
            }
            catch (Exception e)
            {
                Console.WriteLine("{0} Exception caught.", e);
                return;
            }
            Utils.PrintIndex(retIndex);
            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Green, "\nFinished getting index!\n");
        }
예제 #2
0
        public void FSDeleteIndex()
        {
            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Green, "\n:: Delete an Index ::\n");
            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.White, "\nAvailable Indexes:\n");
            ListIndexes();

            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.White, "\nEnter Index Id: ");
            var indexId = Console.ReadLine();

            var deleteIndexRequest = new DeleteIndexRequest();

            deleteIndexRequest.Name = indexId;
            try
            {
                FsAdminClient.DeleteIndex(deleteIndexRequest);
            }
            catch (Grpc.Core.RpcException e)
            {
                if ((e.Status.StatusCode == Grpc.Core.StatusCode.NotFound) ||
                    (e.Status.StatusCode == Grpc.Core.StatusCode.InvalidArgument))
                {
                    FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Red, "\nERROR: Index " + indexId + " not found!\n");
                }
                else
                {
                    Console.WriteLine("{0} Exception caught.", e);
                }
                return;
            }
            catch (Exception e)
            {
                Console.WriteLine("{0} Exception caught.", e);
                return;
            }
            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Green, "\nSuccessfully deleted index!\n");
        }
예제 #3
0
        public void ListIndexes()
        {
            var listIndexesRequest = new ListIndexesRequest();

            listIndexesRequest.Parent = Parent;
            ListIndexesResponse listIndexesResponse = new ListIndexesResponse();

            try
            {
                listIndexesResponse = FsAdminClient.ListIndexes(listIndexesRequest);
            }
            catch (Exception e)
            {
                FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Red, "Exception caught\n" + e.Message);
            }
            var indexes = listIndexesResponse.Indexes;
            var i       = 0;

            foreach (var index in indexes)
            {
                i++;
                FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.White, "\nIndex " + i + ": " + index.Name);
            }
        }
예제 #4
0
        public void FSCreateIndex()
        {
            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Green, "\n:: Creating a Index ::\n");
            var index = new Index();

            while (true)
            {
                FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.White, "\nEnter Field Name (blank when finished): ");
                string fieldName = Console.ReadLine();
                if (fieldName != "")
                {
                    FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.White, "\nEnter Mode (ASCENDING/DESCENDING) [ASCENDING]: ");
                    string fieldMode = Console.ReadLine();
                    IndexField.Types.Mode indexFieldMode = IndexField.Types.Mode.Ascending;
                    if (fieldMode == "" || fieldMode == "ASCENDING")
                    {
                        indexFieldMode = IndexField.Types.Mode.Ascending;
                    }
                    else
                    if (fieldMode == "DESCENDING")
                    {
                        indexFieldMode = IndexField.Types.Mode.Descending;
                    }
                    else
                    if (fieldMode != "ASCENDING" && fieldMode != "DESCENDING")
                    {
                        FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Red, "\nUnrecognized Mode - Choosing ASCENDING");
                        indexFieldMode = IndexField.Types.Mode.Ascending;
                    }
                    var indexField = new IndexField();
                    indexField.FieldPath = fieldName;
                    indexField.Mode      = indexFieldMode;
                    index.Fields.Add(indexField);
                }
                else
                {
                    var createIndexRequest = new CreateIndexRequest();
                    createIndexRequest.Parent = Parent;
                    index.CollectionId        = BaseCollectionId;
                    createIndexRequest.Index  = index;
                    try
                    {
                        Operation operation = FsAdminClient.CreateIndex(createIndexRequest);
                    }
                    catch (Grpc.Core.RpcException e)
                    {
                        Grpc.Core.Status stat = e.Status;
                        if (stat.StatusCode == Grpc.Core.StatusCode.AlreadyExists)
                        {
                            Console.WriteLine("\nIndex already exists.");
                        }
                        Console.WriteLine(stat.Detail);
                    }
                    catch (Exception e)
                    {
                        FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Red, "\nException caught\n" + e.Message);
                    }
                    break;
                }
            }
            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Green, "\nSuccessfully created new index!\n");
        }