Esempio n. 1
0
        public PatchRequest CreatePatchRequest <TDocument>(PropertyUpdateDescriptor[] propertyUpdates, Expression <Func <TDocument, bool> > condition)
        {
            var parameters   = new ScriptParameterDictionary();
            var patchRequest = new PatchRequest
            {
                Values = parameters,
                Script = _patchScriptBuilder.CreateConditionalPatchScript(propertyUpdates, condition, parameters)
            };

            return(patchRequest);
        }
Esempio n. 2
0
        private static void Main(string[] args)
        {
            var dummyChangeId1 = 1000;
            var dummyChangeId2 = 2000;
            var arr            = new[] { 100, 200, 300 };

            PrintCondition(doc => doc.LastKnownChangeId > 10);
            PrintCondition(doc => doc.LastKnownChangeId == 0 ? true : doc.LastKnownChangeId > dummyChangeId1);
            PrintCondition(doc => doc.LastKnownChangeId == 0 ? true : doc.LastKnownChangeId > dummyChangeId1 + 1);
            PrintCondition(doc => doc.LastKnownChangeId == 0 ? true : doc.LastKnownChangeId > arr[arr.Length - 1] + 1);
            PrintCondition(doc => doc.LastKnownChangeId == 0 ? true : (dummyChangeId1 < dummyChangeId2 ? true : false));
            PrintCondition(doc => doc.LastKnownChangeId > DateTime.UtcNow.Year);

            PrintCondition(doc => string.IsNullOrWhiteSpace(doc.Id) ? true : (doc.LastKnownChangeId < dummyChangeId1 ? true : false));
            PrintCondition(doc => doc.LastKnownChangeId.ToString() != "");

            PrintCondition(doc => doc.Id.Length > 0);
            PrintCondition(doc => doc.RecordedChangeIds.Length > 0);
            PrintCondition(doc => doc.ReferenceIds.Count > 0);
            PrintCondition(doc => doc.InvolvedUsers.Count > 0);

            PrintCondition(doc => doc.Dictionary.Count > 0);
            PrintCondition(doc => doc.Dictionary.Keys.Count > 0);
            PrintCondition(doc => doc.Dictionary.Values.Count > 0);

            PrintCondition(doc => doc.InvolvedUsers.Any());
            PrintCondition(doc => doc.InvolvedUsers.Any(u => u == string.Empty));

            PrintCondition(doc => doc.Dictionary.Any());
            PrintCondition(doc => doc.Dictionary.Any(pair => pair.Value == string.Empty || pair.Key == "ThisIsIt"));

            var script = patchScriptBuilder.CreateConditionalPatchScript(
                new PropertyUpdateBatch <TestDocument>()
                .Add(doc => doc.LastKnownChangeId, dummyChangeId2)
                .Add(doc => doc.RecordedChangeIds, new[] { 1L, 2L, 3L })
                .CreateBatch(),
                (TestDocument doc) => doc.LastKnownChangeId < dummyChangeId2,
                new ScriptParameterDictionary());

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }