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"); }
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"); }
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); } }
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"); }