Exemplo n.º 1
0
        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;
                }
            }
        }
Exemplo n.º 2
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");
        }