Ejemplo n.º 1
0
        public void FSCreateDocument()
        {
            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Green, "\n:: Creating a new Document ::\n");
            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Yellow, "\nEnter Collection [cities]: ");
            string collectionId = Console.ReadLine();

            if (collectionId == "")
            {
                collectionId = "cities";
            }

            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Yellow, "\nEnter Document: ");
            var docId            = Console.ReadLine();
            var createDocRequest = new CreateDocumentRequest();

            createDocRequest.Parent       = Parent;
            createDocRequest.DocumentId   = docId;
            createDocRequest.CollectionId = collectionId;
            var fsDocument = new Document();

            createDocRequest.Document = fsDocument;
            try
            {
                fsDocument = FsClient.CreateDocument(createDocRequest);
            }
            catch (Grpc.Core.RpcException e)
            {
                Grpc.Core.Status stat = e.Status;
                if (stat.StatusCode == Grpc.Core.StatusCode.AlreadyExists)
                {
                    FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Red, "\nDocument already exists.");
                }
                FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Yellow, "\n" + stat.Detail);
            }
            catch (Exception e)
            {
                Console.WriteLine("{0} Exception caught.", e);
            }

            // get the document to ensure it was created
            Document retDoc;

            try
            {
                retDoc = GetDocument(docId, collectionId);
            }
            catch (Grpc.Core.RpcException e)
            {
                if (e.Status.StatusCode == Grpc.Core.StatusCode.NotFound)
                {
                    FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Red, "\nDocument was not added.");
                }
                FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Red, "\n" + e.Status.Detail);
                return;
            }
            catch (Exception e)
            {
                Console.WriteLine("{0} Exception caught.", e);
                return;
            }
            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Green, "\nSuccessfully created new document!\nName:" + retDoc.Name + "\n");
        }