public void Populate() { RootCollection.Clear(); ToolStripItem[] styledItems = StyleMenuItems(_menuRegistry.Root.GetMenuItems(_imageFactory)); RootCollection.AddRange(styledItems); }
//s // GET: /collections/ public ActionResult Index() { RootCollection root = LoadXml(); //root.Row.Shuffle(); ViewData["data"] = root; return(View()); }
public async Task CanMigrateLinkOnParent(MigrationProvider provider) { using (WithSqlDatabase(provider, out var connectionString, out string schemaName, "basic")) { var driver = DatabaseDriverDispatcher.CreateDriver(provider, connectionString); using (var store = GetDocumentStore()) { var ordersCollection = new RootCollection(schemaName, "order", "Orders") { LinkedCollections = new List <LinkedCollection> { new LinkedCollection(schemaName, "order_item", RelationType.OneToMany, new List <string> { "order_id" }, "Items") } }; var orderItemsCollection = new RootCollection(schemaName, "order_item", "OrderItems"); var db = await GetDocumentDatabaseInstanceFor(store); var settings = new MigrationSettings { Collections = new List <RootCollection> { ordersCollection, orderItemsCollection } }; using (var cts = new CancellationTokenSource(TimeSpan.FromMinutes(1))) using (db.DocumentsStorage.ContextPool.AllocateOperationContext(out DocumentsOperationContext context)) { var schema = driver.FindSchema(); ApplyDefaultColumnNamesMapping(schema, settings); await driver.Migrate(settings, schema, db, context, token : cts.Token); } using (var session = store.OpenSession()) { var order = session.Load <JObject>("Orders/1"); Assert.NotNull(order); // total and metadata, Id (Orders/1), Items Assert.Equal(4, order.Properties().Count()); Assert.Equal("Orders", order["@metadata"]["@collection"]); Assert.Equal(440, order["Total"]); Assert.Equal("Orders/1", order["Id"]); Assert.Equal("OrderItems/10", order["Items"][0]); Assert.Equal("OrderItems/11", order["Items"][1]); } var collectionStatistics = store.Maintenance.Send(new GetCollectionStatisticsOperation()); Assert.Equal(3, collectionStatistics.CountOfDocuments); } } }
/// <summary> /// Resets the parser to its initial state. /// </summary> public void Clear() { CurrentCollection = RootCollection; RootCollection.Clear(); GlobalItemStateStack.Clear(); GlobalItemStateStack.Add(new Dictionary <GlobalItemTag, EncodedItem> ()); LocalItemState.Clear(); Reports.Clear(); ReportsUseID = false; }
public async Task CanHandleMissingParentLink(MigrationProvider provider) { using (WithSqlDatabase(provider, out var connectionString, out string schemaName, "basic")) { var driver = DatabaseDriverDispatcher.CreateDriver(provider, connectionString); var query = provider.Equals(MigrationProvider.Oracle) == false ? "update order_item set order_id = null" : "update \"order_item\" set \"order_id\" = null"; ExecuteSqlQuery(provider, connectionString, query); using (var store = GetDocumentStore()) { var orderItemCollection = new RootCollection(schemaName, "order_item", "OrderItems") { LinkedCollections = new List <LinkedCollection> { new LinkedCollection(schemaName, "order", RelationType.ManyToOne, new List <string> { "order_id" }, "ParentOrder") } }; var orderCollection = new RootCollection(schemaName, "order", "Orders"); var db = await GetDocumentDatabaseInstanceFor(store); var settings = new MigrationSettings { Collections = new List <RootCollection> { orderItemCollection, orderCollection } }; using (db.DocumentsStorage.ContextPool.AllocateOperationContext(out DocumentsOperationContext context)) { var schema = driver.FindSchema(); ApplyDefaultColumnNamesMapping(schema, settings); await driver.Migrate(settings, schema, db, context); } using (var session = store.OpenSession()) { var orderItem = session.Load <JObject>("OrderItems/10"); Assert.NotNull(orderItem); Assert.True(orderItem.ContainsKey("ParentOrder")); Assert.Equal(JTokenType.Null, orderItem["ParentOrder"].Type); } } } }
public JsPatcher(RootCollection collection, DocumentsOperationContext context) { if (string.IsNullOrWhiteSpace(collection.Patch)) { return; } _context = context; var patchRequest = new PatchRequest(collection.Patch, PatchRequestType.None); scriptRunner = context.DocumentDatabase.Scripts.GetScriptRunner(patchRequest, true, out _runner); }
public async Task CanMigrateSkipOnChild(MigrationProvider provider) { using (WithSqlDatabase(provider, out var connectionString, out string schemaName, "basic")) { var driver = DatabaseDriverDispatcher.CreateDriver(provider, connectionString); using (var store = GetDocumentStore()) { var collection = new RootCollection(schemaName, "order_item", "OrderItems"); var db = await GetDocumentDatabaseInstanceFor(store); var settings = new MigrationSettings { Collections = new List <RootCollection> { collection } }; using (var cts = new CancellationTokenSource(TimeSpan.FromMinutes(1))) using (db.DocumentsStorage.ContextPool.AllocateOperationContext(out DocumentsOperationContext context)) { var schema = driver.FindSchema(); ApplyDefaultColumnNamesMapping(schema, settings); await driver.Migrate(settings, schema, db, context, token : cts.Token); } using (var session = store.OpenSession()) { var orderItem = session.Load <JObject>("OrderItems/10"); Assert.NotNull(orderItem); // price and metadata, Id (OrderItems/1) Assert.Equal(3, orderItem.Properties().Count()); Assert.Equal("OrderItems", orderItem["@metadata"]["@collection"]); Assert.Equal(110, orderItem["Price"]); Assert.Equal("OrderItems/10", orderItem["Id"]); } var collectionStatistics = store.Maintenance.Send(new GetCollectionStatisticsOperation()); Assert.Equal(2, collectionStatistics.CountOfDocuments); } } }
public async Task CanMigrateSkipOnParent(MigrationProvider provider) { using (WithSqlDatabase(provider, out var connectionString, out string schemaName, "basic")) { var driver = DatabaseDriverDispatcher.CreateDriver(provider, connectionString); using (var store = GetDocumentStore()) { var collection = new RootCollection(schemaName, "order", "Orders"); var db = await GetDocumentDatabaseInstanceFor(store); var settings = new MigrationSettings { Collections = new List <RootCollection> { collection } }; using (db.DocumentsStorage.ContextPool.AllocateOperationContext(out DocumentsOperationContext context)) { var schema = driver.FindSchema(); ApplyDefaultColumnNamesMapping(schema, settings); await driver.Migrate(settings, schema, db, context); } using (var session = store.OpenSession()) { var order = session.Load <JObject>("Orders/1"); Assert.NotNull(order); // total and metadata, Id (Orders/1) Assert.Equal(3, order.Properties().Count()); Assert.Equal("Orders", order["@metadata"]["@collection"]); Assert.Equal(440, order["Total"]); Assert.Equal("Orders/1", order["Id"]); } var collectionStatistics = store.Maintenance.Send(new GetCollectionStatisticsOperation()); Assert.Equal(1, collectionStatistics.CountOfDocuments); } } }
protected override string GetQueryByPrimaryKey(RootCollection collection, SqlTableSchema tableSchema, string[] primaryKeyValues, out Dictionary <string, object> queryParameters) { var primaryKeyColumns = tableSchema.PrimaryKeyColumns; if (primaryKeyColumns.Count != primaryKeyValues.Length) { queryParameters = null; throw new InvalidOperationException("Invalid parameters count. Primary key has " + primaryKeyColumns.Count + " columns, but " + primaryKeyValues.Length + " values were provided."); } var parameters = new Dictionary <string, object>(); string query = $"select * from \"{QuoteTable(collection.SourceTableSchema, collection.SourceTableName)}\" where " + string.Join(" and ", primaryKeyColumns.Select((column, idx) => { parameters["p" + idx] = ValueAsObject(tableSchema, column, primaryKeyValues, idx); return($"\"{QuoteColumn(column)}\" = :p{idx}"); })); queryParameters = parameters; return(query); }
public async Task NestedEmbedding(MigrationProvider provider) { using (WithSqlDatabase(provider, out var connectionString, out string schemaName, "basic")) { var driver = DatabaseDriverDispatcher.CreateDriver(provider, connectionString); using (var store = GetDocumentStore()) { var collection = new RootCollection(schemaName, "order", "Orders") { NestedCollections = new List <EmbeddedCollection> { new EmbeddedCollection(schemaName, "order_item", RelationType.OneToMany, new List <string> { "order_id" }, "Items") { NestedCollections = new List <EmbeddedCollection> { new EmbeddedCollection(schemaName, "product", RelationType.ManyToOne, new List <string> { "product_id" }, "Product") } } } }; var db = await GetDocumentDatabaseInstanceFor(store); var settings = new MigrationSettings { Collections = new List <RootCollection> { collection } }; using (db.DocumentsStorage.ContextPool.AllocateOperationContext(out DocumentsOperationContext context)) { var schema = driver.FindSchema(); ApplyDefaultColumnNamesMapping(schema, settings); await driver.Migrate(settings, schema, db, context); } using (var session = store.OpenSession()) { var order = session.Load <JObject>("Orders/1"); Assert.NotNull(order); // total and metadata, Id (Orders/1), Items Assert.Equal(4, order.Properties().Count()); Assert.Equal("Orders", order["@metadata"]["@collection"]); Assert.Equal(440, order["Total"]); Assert.Equal("Orders/1", order["Id"]); var firstItem = order["Items"][0]; Assert.Equal(110, firstItem["Price"]); Assert.Equal(2, firstItem.Count()); var firstItemProduct = firstItem["Product"]; Assert.NotNull(firstItemProduct); Assert.Equal(1, firstItemProduct.Count()); Assert.Equal("Bread", firstItemProduct["Name"]); var secondItem = order["Items"][1]; Assert.Equal(330, secondItem["Price"]); Assert.Equal(2, secondItem.Count()); var secondItemProduct = secondItem["Product"]; Assert.NotNull(secondItemProduct); Assert.Equal(1, secondItemProduct.Count()); Assert.Equal("Milk", secondItemProduct["Name"]); } var collectionStatistics = store.Maintenance.Send(new GetCollectionStatisticsOperation()); Assert.Equal(1, collectionStatistics.CountOfDocuments); } } }
public async Task CanMigrateLinkOnChild(MigrationProvider provider) { using (WithSqlDatabase(provider, out var connectionString, out string schemaName, "basic")) { var driver = DatabaseDriverDispatcher.CreateDriver(provider, connectionString); using (var store = GetDocumentStore()) { var orderItemCollection = new RootCollection(schemaName, "order_item", "OrderItems") { LinkedCollections = new List <LinkedCollection> { new LinkedCollection(schemaName, "order", RelationType.ManyToOne, new List <string> { "order_id" }, "ParentOrder") } }; var orderCollection = new RootCollection(schemaName, "order", "Orders"); var db = await GetDocumentDatabaseInstanceFor(store); var settings = new MigrationSettings { Collections = new List <RootCollection> { orderItemCollection, orderCollection } }; using (db.DocumentsStorage.ContextPool.AllocateOperationContext(out DocumentsOperationContext context)) { var schema = driver.FindSchema(); ApplyDefaultColumnNamesMapping(schema, settings); await driver.Migrate(settings, schema, db, context); } using (var session = store.OpenSession()) { var orderItem = session.Load <JObject>("OrderItems/10"); Assert.NotNull(orderItem); // price and metadata, Id (OrderItems/1), Order with link to Orders/1 Assert.Equal(4, orderItem.Properties().Count()); Assert.Equal("OrderItems", orderItem["@metadata"]["@collection"]); Assert.Equal(110, orderItem["Price"]); Assert.Equal("Orders/1", orderItem["ParentOrder"]); Assert.Equal("OrderItems/10", orderItem["Id"]); var orderItem2 = session.Load <JObject>("OrderItems/11"); Assert.NotNull(orderItem2); // price and metadata, Id (OrderItems/2), Order with link to Orders/1 Assert.Equal(4, orderItem2.Properties().Count()); Assert.Equal("OrderItems", orderItem2["@metadata"]["@collection"]); Assert.Equal(330, orderItem2["Price"]); Assert.Equal("Orders/1", orderItem2["ParentOrder"]); Assert.Equal("OrderItems/11", orderItem2["Id"]); } var collectionStatistics = store.Maintenance.Send(new GetCollectionStatisticsOperation()); Assert.Equal(3, collectionStatistics.CountOfDocuments); } } }
private void Client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) { try { int count = 0; switch (type) { case SearchType.TRACK: Track singleTrack = JsonConvert.DeserializeObject <Track>(e.Result); if (singleTrack.streamable) { AddItem(singleTrack); ++count; } else { lbxErrorLog.Items.Add(singleTrack.title + " -> track is not streamable and cannot be downloaded!"); } break; case SearchType.PLAYLIST: RootPlaylist playlist = JsonConvert.DeserializeObject <RootPlaylist>(e.Result); title = playlist.title; lablTitle.Text = title; foreach (var track in playlist.tracks) { //if (track.streamable) //{ // AddItem(track); // ++count; //} //else //{ // lbxErrorLog.Items.Add(track.title + " -> track is not streamable and cannot be downloaded!"); //} AddItem(track); ++count; } break; case SearchType.USERALL: RootCollection collection = JsonConvert.DeserializeObject <RootCollection>(e.Result); foreach (var item in collection.collection) { if (item.type == "track" || item.type == "track-repost") //(item.type != "playlist" || item.type != "playlist-repost") { if (item.track.streamable) { AddItem(item.track); ++count; } else { lbxErrorLog.Items.Add(item.track.title + " -> track is not streamable and cannot be downloaded!"); } } } break; case SearchType.SEARCH: Track[] tracklist = JsonConvert.DeserializeObject <Track[]>(e.Result); int i = 0; foreach (var track in tracklist) { if (track.streamable) { AddItem(track); ++count; } else { lbxErrorLog.Items.Add(track.title + " -> track is not streamable and cannot be downloaded!"); } i++; } break; } lablTitle.Text = title; SetEnabled(true); SetInfo(String.Format("{0} Tracks Found!", count)); } catch (Exception ex) { MessageBox.Show(ex.Message); } }