Page 1 of 1

Dynamiskt lägga till en DataSource via Plugin

Posted: Mon 10 Sep 2012, 20:43
by henkep
Hej

Undrar om det är möjligt via plugin interfacet att skapa nya datasources till Switch King? Funderar på att skriva ett 1-wire plugin till SwitchKing men vill att pluginet själv ska kunna skapa upp de DataSources som systemet behöver.

Jag har testat lite med ExternalData_V11.DataSourcesRow men jag får inte tillgång till den interna konstruktorn så jag kan ej skapa upp ett nytt sådant objekt.

Vore kul att få det att funka så hjälp mottages tacksamt.

//Henrik

Re: Dynamiskt lägga till en DataSource via Plugin

Posted: Mon 10 Sep 2012, 20:57
by Martin
Du kan göra detta direkt via plugin, som du skriver. Det är exempelvis möjligt att använda Switch Kings egna anrop för att skapa upp en datakälla.
Det är inte rekommenderat att gå direkt mot databasen - istället bör man låta affärslogiken i Switch King (finns i SwitchKing.Server.BusinessAccess.dll) ta hand om det istället.

Fördelen är att det blir väldigt "rent" - du kan köra SaveDataSource(ds); från ditt plugin. Nackdelen med att gå mot Switch Kings DLL:er är att Pluginet blir versionskänsligt (om man inte skruvar på konfigurationsfiler och överstyr det) samt att funktionen i Switch King ju faktiskt kan förändras.

Edit: Flyttat till ny kategori.

Re: Dynamiskt lägga till en DataSource via Plugin

Posted: Mon 10 Sep 2012, 21:09
by henkep
Martin wrote:Du kan göra detta direkt via plugin, som du skriver. Det är exempelvis möjligt att använda Switch Kings egna anrop för att skapa upp en datakälla.
Det är inte rekommenderat att gå direkt mot databasen - istället bör man låta affärslogiken i Switch King (finns i SwitchKing.Server.BusinessAccess.dll) ta hand om det istället.

Fördelen är att det blir väldigt "rent" - du kan köra SaveDataSource(ds); från ditt plugin. Nackdelen med att gå mot Switch Kings DLL:er är att Pluginet blir versionskänsligt (om man inte skruvar på konfigurationsfiler och överstyr det) samt att funktionen i Switch King ju faktiskt kan förändras.

Edit: Flyttat till ny kategori.
Hej Martin!

Jag gissade nästan att det skulle gå via BusinessAccess men problemet jag stöter på är att jag inte lyckas skapa ett nytt objekt av typen DataSourceRow. Den klagar på att jag ej kan nå den interna konstruktorn..

//Henrik

Tjoho, nu börjar klockan bli mycket.
Naturligtvis inte DataSourceRow som jag menar..

Det som krånglar är att jag försöker skapa en instans av SwitchKing.Server.BusinessAccess.DataCollection.DataSourceAccess.DataSourceEntity för att nå SaveDataSource(ds) men detta vill den absolut inte..
Du råkar inte ha ett exempel man kan kika på?

//Henrik

Re: Dynamiskt lägga till en DataSource via Plugin

Posted: Mon 10 Sep 2012, 21:30
by Martin
Gå via:
SwitchKing.Server.BusinessAccess.DataCollection.BusinessInstances.DataSource istället. Den ger en singleton som redan är färdig att använda och som håller reda på cache-data.

Om du ska skapa en fildatakälla, Telldus-källa eller Xml-källa så kan du ropa på SwitchKing.Server.BusinessAccess.DataCollection.Factories.DataSourceTemplateFactory.CreateTemplate().
Så får du en "malldatakälla" - parameter exempelvis "FlatFile_Simple" eller "Telldus".

Annars kan du skapa en datakälla "rätt av", men då bör du exempelvis skapa en datakälla som har DataSource.TypeName = "ValueInjected" och dessutom har typen satt till DataSource.SourceType = ValueInjected.

Men - som sagt - detta blir versionskänsligt. :!: