Ejemplo n.º 1
0
        /// <summary>
        /// Put command for new client tests
        /// </summary>
        /// <param name="session"></param>
        /// <param name="entity"></param>
        /// <param name="id"></param>
        public void PutCommand(IDocumentSession session, object entity, string id)
        {
            var documentInfo = new DocumentInfo
            {
                Entity = entity,
                Id     = id
            };
            var tag = session.Advanced.DocumentStore.Conventions.GetDynamicTagName(entity);

            var metadata = new DynamicJsonValue();

            if (tag != null)
            {
                metadata[Constants.Headers.RavenEntityName] = tag;
            }

            documentInfo.Metadata = session.Advanced.Context.ReadObject(metadata, id);

            documentInfo.Document = session.Advanced.EntityToBlittable.ConvertEntityToBlittable(documentInfo.Entity, documentInfo);

            var putCommand = new PutDocumentCommand()
            {
                Id       = id,
                Etag     = documentInfo.ETag,
                Document = documentInfo.Document,
                Context  = session.Advanced.Context
            };

            session.Advanced.RequestExecuter.Execute(putCommand, session.Advanced.Context);
        }
Ejemplo n.º 2
0
        public WorkingWithDocumentIdentifiers(string g)
        {
            var store   = new DocumentStore();
            var session = store.OpenSession();

            #region commands_identity_generate

            var command = new NextIdentityForCommand("products");
            session.Advanced.RequestExecutor.Execute(command, session.Advanced.Context);
            var identity = command.Result;

            var doc = new DynamicJsonValue
            {
                ["Name"] = "My RavenDB"
            };

            var blittableDoc = session.Advanced.EntityToBlittable.ConvertEntityToBlittable(doc, null);

            var putCommand = new PutDocumentCommand("products/" + identity, null, blittableDoc);

            session.Advanced.RequestExecutor.Execute(putCommand, session.Advanced.Context);

            #endregion

            #region commands_identity_set

            var seedIdentityCommand = new SeedIdentityForCommand("products", 1994);

            #endregion
        }
Ejemplo n.º 3
0
        public void Foo()
        {
            using (var store = new DocumentStore())
                using (var session = store.OpenSession())
                {
                    #region put_sample
                    // Create a new document
                    var doc = new Category
                    {
                        Name        = "My category",
                        Description = "My category description"
                    };
                    // Create metadata on the document
                    var docInfo = new DocumentInfo
                    {
                        Collection = "Categories"
                    };
                    // Convert your entity to a BlittableJsonReaderObject
                    var blittableDoc = session.Advanced.JsonConverter.ToBlittable(doc, docInfo);

                    // The Put command (parameters are document ID, changeVector check is null, the document to store)
                    var command = new PutDocumentCommand("categories/999", null, blittableDoc);
                    // RequestExecutor sends the command to the server
                    session.Advanced.RequestExecutor.Execute(command, session.Advanced.Context);
                    #endregion
                }
        }
Ejemplo n.º 4
0
        public void UpdatePersona(Persona persona)
        {
            string Id = OptenerID(persona);

            OptenerAmigos(persona);
            using (var session = DBServices.Store.OpenSession())
            {
                var doc = new Persona
                {
                    Nombre    = persona.Nombre,
                    Apellidos = persona.Apellidos,
                    Edad      = persona.Edad,
                    Amigo1    = persona.Amigo1,
                    Amigo2    = persona.Amigo2
                };

                var docInfo = new DocumentInfo
                {
                    Collection = "Personas"
                };
                var blittableDoc = session.Advanced.EntityToBlittable.ConvertEntityToBlittable(doc, docInfo);
                var command      = new PutDocumentCommand(Id, null, blittableDoc);
                session.Advanced.RequestExecutor.Execute(command, session.Advanced.Context);


                session.SaveChanges();
            }
        }
Ejemplo n.º 5
0
        public IActionResult Post([FromBody] Order order)
        {
            try
            {
                var docInfo = new DocumentInfo
                {
                    Collection = "Orders"
                };
                var session  = _documentStoreHolder.Store.OpenSession();
                var document = session.Advanced.EntityToBlittable.ConvertEntityToBlittable(order, docInfo);
                var command  = new PutDocumentCommand(order.OrderId, null, document);

                session.Advanced.RequestExecutor.Execute(command, session.Advanced.Context);

                _logger.LogInformation($"Order {order.OrderId} for {order.ClientName} {order.ClientSurname} Created");

                _eventBus.Publish(new NewOrderCreatedIntegrationEvent
                {
                    OrderId  = order.OrderId,
                    ClientId = $"{order.ClientName}//{order.ClientSurname}",
                    Quantity = order.Quantity
                });
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);
                return(StatusCode(500, e.Message));
            }

            return(Created("", order));
        }
Ejemplo n.º 6
0
        public virtual async Task <DocumentHeaderResponse> PutAsync(PutDocumentCommand cmd)
        {
            Ensure.That(cmd, "cmd").IsNotNull();

            var req = CreateRequest(cmd);
            var res = SendAsync(req);

            return(ProcessDocumentHeaderResponse(await res.ForAwait()));
        }
Ejemplo n.º 7
0
        protected virtual HttpRequestMessage CreateRequest(PutDocumentCommand cmd)
        {
            var req = new HttpRequest(HttpMethod.Put, GenerateRequestUrl(cmd.Id, cmd.Rev));

            req.SetIfMatch(cmd.Rev);
            req.SetContent(cmd.Content);

            return(req);
        }
Ejemplo n.º 8
0
            public async Task <PutResult> PutAsync(string id, string changeVector, object data, Dictionary <string, object> metadata = null, CancellationToken cancellationToken = default(CancellationToken))
            {
                if (id == null)
                {
                    throw new ArgumentNullException(nameof(id));
                }
                if (data == null)
                {
                    throw new ArgumentNullException(nameof(data));
                }

                var documentInfo = new DocumentInfo
                {
                    Id           = id,
                    ChangeVector = changeVector
                };

                using (var session = _store.OpenSession())
                {
                    var documentJson = data as BlittableJsonReaderObject;
                    var metadataJson = metadata != null
                        ? EntityToBlittable.ConvertEntityToBlittable(metadata, session.Advanced.DocumentStore.Conventions, session.Advanced.Context)
                        : null;

                    if (documentJson == null)
                    {
                        if (metadataJson != null)
                        {
                            documentInfo.Metadata         = metadataJson;
                            documentInfo.MetadataInstance = new MetadataAsDictionary(metadata);
                        }

                        documentJson = session.Advanced.EntityToBlittable.ConvertEntityToBlittable(data, documentInfo);
                    }
                    else
                    {
                        if (metadataJson != null)
                        {
                            documentJson.Modifications = new DynamicJsonValue(documentJson)
                            {
                                [Constants.Documents.Metadata.Key] = metadataJson
                            };

                            documentJson = session.Advanced.Context.ReadObject(documentJson, id);
                        }
                    }


                    var command = new PutDocumentCommand(id, changeVector, documentJson);

                    await RequestExecutor.ExecuteAsync(command, Context, token : cancellationToken);

                    return(command.Result);
                }
            }
Ejemplo n.º 9
0
        public void Put(Task task)
        {
            var session = store.OpenSession();
            var docInfo = new DocumentInfo
            {
                Collection = "Tasks"
            };
            var blittableDoc = session.Advanced.EntityToBlittable.ConvertEntityToBlittable(task, docInfo);

            var command = new PutDocumentCommand(task.Id, null, blittableDoc);

            session.Advanced.RequestExecutor.Execute(command, session.Advanced.Context);
        }
Ejemplo n.º 10
0
        public void CanGetCorrectOutputWhenUsingDuplicateArray()
        {
            using (var store = GetDocumentStore())
            {
                store.Maintenance.Send(new PutIndexesOperation(new Raven.Client.Documents.Indexes.IndexDefinition
                {
                    Maps =
                    {
                        @"docs.Documents.Select(doc => new {
    Name = doc.Name,
    Properties = doc.Properties,
    col = new[]{
        new {
            Name = doc.Name,
            Properties = doc.Properties
        }
    }})
"
                    },
                    Reduce = @"results.GroupBy(doc=> new {
        Name = doc.Name
    }).Select(g=> new {
        Name = g.Key.Name,
        Properties = g.SelectMany(d => d.Properties),
        col = g.SelectMany(d => d.col)
    })",
                    Name   = "test"
                }));

                var requestExecuter = store.GetRequestExecutor();

                using (requestExecuter.ContextPool.AllocateOperationContext(out var context))
                {
                    var json = context.Read(new MemoryStream(Encoding.UTF8.GetBytes(Doc)), "users/1");

                    var putCommand = new PutDocumentCommand("users/1", null, json);

                    requestExecuter.Execute(putCommand, context);
                }

                using (var session = store.OpenSession())
                {
                    var r = session.Advanced.RawQuery <dynamic>(@"from index test")
                            .WaitForNonStaleResults()
                            .Single();

                    Assert.Equal("a1", r.col[0].Properties[0].Key.ToString());
                }
            }
        }
Ejemplo n.º 11
0
    static void StoreUniqueDoc(IDocumentStore store, string id, SagaUniqueIdentity document)
    {
        var documentInfo = new DocumentInfo
        {
            MetadataInstance = new MetadataAsDictionary()
        };

        documentInfo.MetadataInstance[Constants.Documents.Metadata.RavenClrType] = "NServiceBus.RavenDB.Persistence.SagaPersister.SagaUniqueIdentity, NServiceBus.RavenDB";
        documentInfo.MetadataInstance[Constants.Documents.Metadata.Collection]   = "SagaUniqueIdentities";

        Console.WriteLine($"Creating unique identity: {id}");
        using (var session = store.OpenSession())
        {
            var blittableDoc = session.Advanced.EntityToBlittable.ConvertEntityToBlittable(document, documentInfo);
            var command      = new PutDocumentCommand(id, string.Empty, blittableDoc);
            session.Advanced.RequestExecutor.Execute(command, session.Advanced.Context);
            session.SaveChanges();
        }
    }
Ejemplo n.º 12
0
        public async Task MergedPutCommand_WhenDocumentAlreadyDeletedAndFailOnConcurrency_ShouldNotDeleteTombstone()
        {
            var store = GetDocumentStore(new Options
            {
                ModifyDocumentStore  = s => s.Conventions.UseOptimisticConcurrency = true,
                ModifyDatabaseRecord = r => r.Settings["Tombstones.CleanupIntervalInMin"] = int.MaxValue.ToString()
            });

            const string id = "TestObjs/1";

            using (var session = store.OpenAsyncSession())
            {
                await session.StoreAsync(new TestObj(), id);

                await session.SaveChangesAsync();
            }

            using (var session1 = store.OpenAsyncSession())
            {
                session1.Delete(id);
                await session1.SaveChangesAsync().ContinueWith(_ => "");
            }
            Assert.NotEqual(0, GetTombstones(store).Count);

            var requestExecuter = store.GetRequestExecutor();

            using (requestExecuter.ContextPool.AllocateOperationContext(out JsonOperationContext context))
            {
                var djv = new DynamicJsonValue
                {
                    [Raven.Client.Constants.Documents.Metadata.Key] = new DynamicJsonValue
                    {
                        [Raven.Client.Constants.Documents.Metadata.Collection] = store.Conventions.FindCollectionName(typeof(TestObj))
                    }
                };
                var json       = context.ReadObject(djv, id);
                var putCommand = new PutDocumentCommand(id, "someConflictedChangeVector", json);
                await Assert.ThrowsAnyAsync <ConcurrencyException>(async() => await requestExecuter.ExecuteAsync(putCommand, context));
            }

            Assert.NotEqual(0, GetTombstones(store).Count);
        }
Ejemplo n.º 13
0
    static void StoreSaga(IDocumentStore store, string id, object document, string entityName, string typeName, string uniqueDocId)
    {
        var documentInfo = new DocumentInfo
        {
            MetadataInstance = new MetadataAsDictionary()
        };

        documentInfo.MetadataInstance[Constants.Documents.Metadata.RavenClrType] = typeName;
        documentInfo.MetadataInstance["NServiceBus-UniqueDocId"] = uniqueDocId;
        documentInfo.MetadataInstance[Constants.Documents.Metadata.Collection] = entityName;

        Console.WriteLine($"Creating {entityName}: {id}");
        using (var session = store.OpenSession())
        {
            var blittableDoc = session.Advanced.EntityToBlittable.ConvertEntityToBlittable(document, documentInfo);
            var command      = new PutDocumentCommand(id, string.Empty, blittableDoc);
            session.Advanced.RequestExecutor.Execute(command, session.Advanced.Context);
            session.SaveChanges();
        }
    }
Ejemplo n.º 14
0
        public void CanOverwriteDocumentWithSmallerValue()
        {
            using (var store = GetDocumentStore())
            {
                var requestExecuter = store.GetRequestExecutor();

                using (requestExecuter.ContextPool.AllocateOperationContext(out JsonOperationContext context))
                {
                    var djv = new DynamicJsonValue
                    {
                        ["Name"]     = "Fitzchak",
                        ["LastName"] = "Very big value here, so can reproduce the issue",
                        [Constants.Documents.Metadata.Key] = new DynamicJsonValue
                        {
                            ["SomeMoreData"]  = "Make this object bigger",
                            ["SomeMoreData2"] = "Make this object bigger",
                            ["SomeMoreData3"] = "Make this object bigger"
                        }
                    };

                    var json = context.ReadObject(djv, "users/1");

                    var putCommand = new PutDocumentCommand("users/1", null, json);

                    requestExecuter.Execute(putCommand, context);

                    djv = new DynamicJsonValue
                    {
                        ["Name"] = "Fitzchak"
                    };

                    json = context.ReadObject(djv, "users/1");

                    putCommand = new PutDocumentCommand("users/1", null, json);

                    requestExecuter.Execute(putCommand, context);
                }
            }
        }
Ejemplo n.º 15
0
        public void Foo()
        {
            using (var store = new DocumentStore())
                using (var session = store.OpenSession())
                {
                    #region put_sample
                    var doc = new Category
                    {
                        Name        = "My category",
                        Description = "My category description"
                    };
                    var docInfo = new DocumentInfo
                    {
                        Collection = "Categories"
                    };
                    var blittableDoc = session.Advanced.EntityToBlittable.ConvertEntityToBlittable(doc, docInfo);

                    var command = new PutDocumentCommand("categories/999", null, blittableDoc);
                    session.Advanced.RequestExecutor.Execute(command, session.Advanced.Context);
                    #endregion
                }
        }
Ejemplo n.º 16
0
        public void Can_select_and_query_field_with_dot()
        {
            using (var store = GetDocumentStore())
            {
                var requestExecuter = store.GetRequestExecutor();

                using (requestExecuter.ContextPool.AllocateOperationContext(out JsonOperationContext ctx))
                {
                    var djv = new DynamicJsonValue
                    {
                        ["Na.me"] = "Fitzchak",
                        [Constants.Documents.Metadata.Key] = new DynamicJsonValue
                        {
                            [Constants.Documents.Metadata.Collection] = "Users",
                        }
                    };

                    var json = ctx.ReadObject(djv, "users/1");

                    var putCommand = new PutDocumentCommand("users/1", null, json);

                    requestExecuter.Execute(putCommand, ctx);
                }

                using (var session = store.OpenSession())
                {
                    var results = session.Advanced.RawQuery <dynamic>("from Users").ToList();

                    Assert.Equal(1, results.Count);

                    var jObject = results[0] as Newtonsoft.Json.Linq.JObject;
                    Assert.NotNull(jObject.Property("Na.me"));
                }

                using (var session = store.OpenSession())
                {
                    var results = session.Advanced.RawQuery <dynamic>("from Users select 'Na.me'").ToList();

                    Assert.Equal(1, results.Count);

                    var jObject = results[0] as Newtonsoft.Json.Linq.JObject;
                    Assert.NotNull(jObject.Property("Na.me"));
                }

                using (var session = store.OpenSession())
                {
                    var results = session.Advanced.RawQuery <dynamic>("from Users where 'Na.me' = 'Fitzchak'").Statistics(out var stats).WaitForNonStaleResults().ToList();

                    Assert.Equal(1, results.Count);
                    Assert.Equal("Auto/Users/By'Na.me'", stats.IndexName);

                    var jObject = results[0] as Newtonsoft.Json.Linq.JObject;
                    Assert.NotNull(jObject.Property("Na.me"));
                }

                using (var session = store.OpenSession())
                {
                    var results = session.Advanced.RawQuery <dynamic>("from Users where search('Na.me', 'Fitzchak')").Statistics(out var stats).WaitForNonStaleResults().ToList();

                    Assert.Equal(1, results.Count);
                    Assert.Equal("Auto/Users/BySearch('Na.me')", stats.IndexName);
                }

                using (var session = store.OpenSession())
                {
                    var results = session.Advanced.RawQuery <dynamic>("from Users group by 'Na.me' select count()").Statistics(out var stats).WaitForNonStaleResults().ToList();

                    Assert.Equal(1, results.Count);
                    Assert.Equal("Auto/Users/ByCountReducedBy'Na.me'", stats.IndexName);
                }
            }
        }
Ejemplo n.º 17
0
        private void ParseCommand(string line)
        {
            if (string.IsNullOrEmpty(line))
            {
                return;
            }
            //NOTE: Parse in ascending length order!
            if (line.Substring(0, 1).Equals("#"))
            {
                return;
            }
            if (line.Length < 4)
            {
                Warn("invalid command: {0}", line);
                return;
            }

            if (line.Substring(0, 4).ToLower().Equals("quit") || line.Substring(0, 4).ToLower().Equals("exit"))
            {
                return;
            }

            var    idx = line.IndexOf(' ');
            string cmd;

            if (idx < 0)
            {
                idx = 0;
                cmd = line;
            }
            else
            {
                cmd = line.Substring(0, idx).ToLower();
            }

            var args = idx == 0 ? string.Empty : line.Substring(idx + 1).Trim();

            if (CR.abort.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new AbortCommand();
                c.Execute(context);
                StopTimer(CR.abort + " " + args);
                return;
            }
            if (CR.addalias.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new AddAliasCommand();
                c.Execute(context, args);
                StopTimer(CR.addalias + " " + args);
                return;
            }
            if (CR.addindex.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new AddIndexCommand();
                c.Execute(context, args);
                StopTimer(CR.addindex + " " + args);
                return;
            }
            if (CR.close.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new CloseCommand();
                c.Execute(context, args);
                StopTimer(CR.close + " " + args);
                return;
            }
            if (CR.commit.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new CommitCommand();
                c.Execute(context, args);
                StopTimer(CR.commit + " " + args);
                return;
            }
            if (CR.compactcontainer.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new CompactContainerCommand();
                c.Execute(context, args);
                StopTimer(CR.compactcontainer + " " + args);
                return;
            }
            if (CR.contextquery.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new ContextQueryCommand();
                c.Execute(context, args);
                StopTimer(CR.contextquery + " " + args);
                return;
            }
            if (CR.cquery.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new CQueryCommand();
                c.Execute(context, args);
                StopTimer(CR.cquery + " " + args);
                return;
            }
            if (CR.createcontainer.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new CreateContainerCommand();
                c.Execute(context, args);
                StopTimer(CR.createcontainer + " " + args);
                return;
            }
            if (CR.delindex.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new DeleteIndexCommand();
                c.Execute(context, args);
                StopTimer(CR.delindex + " " + args);
                return;
            }
            if (CR.echo.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                Msg(args);
                return;
            }
            if (CR.getdocuments.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new GetDocumentsCommand();
                c.Execute(context, args);
                StopTimer(CR.getdocuments + " " + args);
                return;
            }
            if (CR.getmetadata.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new GetMetadataCommand();
                c.Execute(context, args);
                StopTimer(CR.getmetadata + " " + args);
                return;
            }
            if (CR.help.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                var c = new HelpCommand();
                c.Execute(args);
                return;
            }
            if (CR.info.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new InfoCommand();
                c.Execute(context, args);
                StopTimer(CR.info + " " + args);
                return;
            }
            if (CR.listindexes.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new ListIndexesCommand();
                c.Execute(context, args);
                StopTimer(CR.listindexes + " " + args);
                return;
            }
            if (CR.lookupedgeindex.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new LookupEdgeIndexCommand();
                c.Execute(context, args);
                StopTimer(CR.lookupedgeindex + " " + args);
                return;
            }
            if (CR.lookupindex.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new LookupIndexCommand();
                c.Execute(context, args);
                StopTimer(CR.lookupindex + " " + args);
                return;
            }
            if (CR.lookupstats.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new LookupStatisticsCommand();
                c.Execute(context, args);
                StopTimer(CR.lookupstats + " " + args);
                return;
            }
            if (CR.opencontainer.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new OpenContainerCommand();
                c.Execute(context, args);
                StopTimer(CR.opencontainer + " " + args);
                return;
            }
            if (CR.preload.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new PreloadCommand();
                c.Execute(context, args);
                StopTimer(CR.preload + " " + args);
                return;
            }
            if (CR.prepare.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new PrepareCommand();
                c.Execute(context, args);
                StopTimer(CR.prepare + " " + args);
                return;
            }
            if (CR.print.IndexOf(cmd, 0, StringComparison.Ordinal) == 0 || cmd.ToLower().Equals("printnames"))
            {
                StartTimer();
                var c = new PrintCommand();
                c.Execute(context, cmd.Equals("printnames") ? "printnames " + args : args);
                StopTimer(cmd.Equals("printnames") ? "printNames" : CR.print);
                return;
            }
            if (CR.putdocuments.Equals(cmd))
            {
                StartTimer();
                var c = new PutDocumentsCommand();
                c.Execute(context, args);
                StopTimer(CR.putdocuments + " " + args);
                return;
            }
            if (CR.putdocument.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new PutDocumentCommand();
                c.Execute(context, args);
                StopTimer(CR.putdocument + " " + args);
                return;
            }
            if (CR.query.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new QueryCommand();
                c.Execute(context, args);
                StopTimer(CR.query + " " + args);
                return;
            }
            if (CR.queryplan.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new QueryPlanCommand();
                c.Execute(context, args);
                StopTimer(CR.queryplan + " " + args);
                return;
            }
            if (CR.reindexcontainer.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new ReindexContainerCommand();
                c.Execute(context, args);
                StopTimer(CR.reindexcontainer + " " + args);
                return;
            }
            if (CR.removealias.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new RemoveAliasCommand();
                c.Execute(context, args);
                StopTimer(CR.removealias + " " + args);
                return;
            }
            if (CR.removecontainer.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new RemoveContainerCommand();
                c.Execute(context, args);
                StopTimer(CR.removecontainer + " " + args);
                return;
            }
            if (CR.removedocument.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new RemoveDocumentCommand();
                c.Execute(context, args);
                StopTimer(CR.removedocument + " " + args);
                return;
            }
            if (CR.run.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                var c = new RunCommand();
                c.Execute(context, args);
                var l2 = new List <string>(originalArgs)
                {
                    "-s", c.Script
                };
                StartTimer();
                Main(l2.ToArray());
                StopTimer(CR.run + " " + args);
                return;
            }
            if (CR.setautoindexing.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new SetAutoIndexingCommand();
                c.Execute(context, args);
                StopTimer(CR.setautoindexing + " " + args);
                return;
            }
            if (CR.setbaseuri.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new SetBaseUriCommand();
                c.Execute(context, args);
                StopTimer(CR.setbaseuri + " " + args);
                return;
            }
            if (CR.setignore.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                var c = new SetIgnoreCommand();
                c.Execute(context, args);
                ignoreErrors = c.Ignore;
                return;
            }
            if (CR.setlazy.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new SetLazyCommand();
                c.Execute(context, args);
                StopTimer(CR.setlazy + " " + args);
                return;
            }
            if (CR.setmetadata.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new SetMetadataCommand();
                c.Execute(context, args);
                StopTimer(CR.setmetadata + " " + args);
                return;
            }
            if (CR.setnamespace.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new SetNamespaceCommand();
                c.Execute(context, args);
                StopTimer(CR.setnamespace + " " + args);
                return;
            }
            if (CR.setprojection.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new SetProjectionCommand();
                c.Execute(context, args);
                StopTimer(CR.setprojection + " " + args);
                return;
            }
            if (CR.setquerytimeout.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new SetQueryTimeoutCommand();
                c.Execute(context, args);
                StopTimer(CR.setquerytimeout + " " + args);
                return;
            }
            if (CR.setvariable.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new SetVariableCommand();
                c.Execute(context, args);
                StopTimer(CR.setvariable + " " + args);
                return;
            }
            if (CR.setverbose.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new SetVerboseCommand();
                c.Execute(context, args);
                StopTimer(CR.setverbose + " " + args);
                return;
            }
            if (CR.sync.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                context.Sync();
                StopTimer(CR.sync + " " + args);
                return;
            }
            if (CR.time.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                time = true;
                ParseCommand(args);
                return;
            }
            if (CR.transaction.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new TransactionCommand();
                c.Execute(context, args);
                StopTimer(CR.transaction + " " + args);
                return;
            }
            if (CR.upgradecontainer.IndexOf(cmd, 0, StringComparison.Ordinal) == 0)
            {
                StartTimer();
                var c = new UpgradeContainerCommand();
                c.Execute(context, args);
                StopTimer(CR.upgradecontainer + " " + args);
                return;
            }

            Warn("Command not recognized: {0}", cmd);
        }
Ejemplo n.º 18
0
 public static Task <DocumentHeaderResponse> ExecuteAsync(this IClient client, PutDocumentCommand cmd)
 {
     return(client.Documents.PutAsync(cmd));
 }
Ejemplo n.º 19
0
        public WorkingWithDocumentIdentifiers()
        {
            var store = new DocumentStore();

            var session = store.OpenSession();

            #region session_id_not_provided

            var order = new Order
            {
                Id = null // value not provided
            };

            session.Store(order);

            #endregion


            #region session_get_document_id

            var orderId = session.Advanced.GetDocumentId(order); // "orders/1-A"

            #endregion

            #region session_empty_string_id

            var orderEmptyId = new Order
            {
                Id = string.Empty // database will create a GUID value for it
            };

            session.Store(orderEmptyId);

            session.SaveChanges();

            var guidId = session.Advanced.GetDocumentId(orderEmptyId); // "bc151542-8fa7-45ac-bc04-509b343a8720"

            #endregion

            #region session_semantic_id_1

            var product = new Product
            {
                Id   = "products/ravendb",
                Name = "RavenDB"
            };

            session.Store(product);

            #endregion

            #region session_semantic_id_2

            session.Store(new Product
            {
                Name = "RavenDB"
            }, "products/ravendb");

            #endregion


            #region session_auto_id

            session.Store(new Company
            {
                Id = "companies/"
            });

            session.SaveChanges();

            #endregion

            #region session_identity_id

            session.Store(new Company
            {
                Id = "companies|"
            });

            session.SaveChanges();

            #endregion


            #region commands_identity

            var doc = new DynamicJsonValue
            {
                ["Name"] = "My RavenDB"
            };

            var blittableDoc = session.Advanced.JsonConverter.ToBlittable(doc, null);

            var command = new PutDocumentCommand("products/", null, blittableDoc);

            session.Advanced.RequestExecutor.Execute(command, session.Advanced.Context);

            var identityId = command.Result.Id; // "products/0000000000000000001-A if using only '/' in the seesion"

            var commandWithPipe = new PutDocumentCommand("products|", null, blittableDoc);
            session.Advanced.RequestExecutor.Execute(commandWithPipe, session.Advanced.Context);

            var identityPipeId = command.Result.Id; // "products/1"

            #endregion
        }