public void PrintIndex(Index index) { ColoredConsoleWrite(ConsoleColor.Yellow, "\n Index Name: " + index.Name); ColoredConsoleWrite(ConsoleColor.Yellow, "\nCollection Id: " + index.CollectionId); ColoredConsoleWrite(ConsoleColor.Yellow, "\n State: "); switch (index.State) { case Index.Types.State.Unspecified: ColoredConsoleWrite(ConsoleColor.Yellow, Index.Types.State.Unspecified.ToString()); break; case Index.Types.State.Creating: ColoredConsoleWrite(ConsoleColor.Yellow, Index.Types.State.Creating.ToString()); break; case Index.Types.State.Error: ColoredConsoleWrite(ConsoleColor.Yellow, Index.Types.State.Error.ToString()); break; case Index.Types.State.Ready: ColoredConsoleWrite(ConsoleColor.Yellow, Index.Types.State.Ready.ToString()); break; default: ColoredConsoleWrite(ConsoleColor.Red, "Not Defined!"); break; } var fields = index.Fields; var i = 0; foreach (var field in fields) { i++; ColoredConsoleWrite(ConsoleColor.Gray, "\n Field " + i + ": " + field.FieldPath); ColoredConsoleWrite(ConsoleColor.Gray, " Mode: "); IndexField.Types.Mode indexFieldMode = field.Mode; switch (field.Mode) { case IndexField.Types.Mode.Ascending: ColoredConsoleWrite(ConsoleColor.Gray, "Ascending"); break; case IndexField.Types.Mode.Descending: ColoredConsoleWrite(ConsoleColor.Gray, "Descending"); break; case IndexField.Types.Mode.Unspecified: ColoredConsoleWrite(ConsoleColor.Gray, "Unspecified"); break; default: ColoredConsoleWrite(ConsoleColor.Red, "Not Defined!"); break; } } }
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"); }