Esempio n. 1
0
        private static void SeedItems(IMongoDatabase db)
        {
            var collection = db.GetCollection <MongoItem>(MongoItem.COLLECTION);

            for (int i = 1; i <= 20; i++)
            {
                string   userId = (i & 1) == 1 ? "Odd" : "Even";
                DateTime dt     = new DateTime(2015, 12, i, 0, 0, 0, DateTimeKind.Utc);

                MongoItem item = new MongoItem
                {
                    Id           = $"item-{i:000}",
                    Title        = $"Item {i}",
                    Description  = $"Description of item {i}",
                    FacetId      = (i & 1) == 1 ? "alpha" : "beta",
                    GroupId      = $"g{i / 2:00}",
                    SortKey      = $"item{i:000}",
                    Flags        = i,
                    CreatorId    = userId,
                    UserId       = userId,
                    TimeCreated  = dt,
                    TimeModified = dt
                };
                collection.InsertOne(item);
            }
        }
        private MongoItem[] SeedItems()
        {
            EnsureClientCreated(CONNECTION);
            IMongoDatabase db = Client.GetDatabase(DB_NAME);
            IMongoCollection <MongoItem> items =
                db.GetCollection <MongoItem>(MongoItem.COLLECTION);
            IMongoCollection <MongoPart> parts =
                db.GetCollection <MongoPart>(MongoPart.COLLECTION);

            var jsonOptions = new JsonSerializerOptions
            {
                PropertyNamingPolicy = JsonNamingPolicy.CamelCase
            };

            // generate IDs
            string[] itemIds = new string[4];
            for (int i = 0; i < 4; i++)
            {
                itemIds[i] = Guid.NewGuid().ToString();
            }

            // generate items and seed
            // 4 items: A B C D with hierarchy:
            // A (y=1)
            // +--B (y=2 x=1)
            // +--C (y=2 x=2)
            //    +--D (y=3)
            MongoItem[] mongoItems = new MongoItem[4];
            for (int i = 0; i < 4; i++)
            {
                char letter = (char)('A' + i);

                // item
                MongoItem mongoItem = new MongoItem
                {
                    Id          = itemIds[i],
                    Title       = $"Item {letter}",
                    Description = $"Description for {letter}",
                    FacetId     = "default",
                    SortKey     = $"item {letter}",
                    CreatorId   = "zeus",
                    UserId      = "zeus"
                };
                mongoItems[i] = mongoItem;
                items.InsertOne(mongoItem);

                // hierarchy part
                HierarchyPart part = new HierarchyPart
                {
                    ItemId    = mongoItem.Id,
                    CreatorId = mongoItem.CreatorId,
                    UserId    = mongoItem.UserId
                };
                SetHierarchyPart(i, part, itemIds);
                parts.InsertOne(new MongoPart(part)
                {
                    Content = BsonDocument.Parse(
                        JsonSerializer.Serialize(part, part.GetType(), jsonOptions))
                });
            }

            return(mongoItems);
        }