Пример #1
0
        private async Task RemoveFromParentsChildrenCollection(Node oldDir, NodeID oldId, IDatabaseSession db)
        {
            var toRemove = oldDir?.Attributes?.Items
                           .FirstOrDefault(kv => kv.Key.Equals(Attr.Children))
                           ?.Value.Map?.Items?.FirstOrDefault(x => x.Key.Equals(oldId));

            if (toRemove != null)
            {
                var dataToRemove = new Node
                {
                    Id         = oldDir.Id,
                    Attributes = new Map
                    {
                        Items = new List <KeyValue>()
                        {
                            Utils.Prop(DateTime.UtcNow.Ticks,
                                       Attr.Children,
                                       new Map
                            {
                                Items = new List <KeyValue>()
                                {
                                    toRemove,
                                }
                            })
                        }
                    }
                };
                // Merge these new fields into the existing node.
                await db.Except(dataToRemove);
            }
        }