I work on a project where we're considering using Orchard CMS.
However, we want to use web services as data sources for some of the content items. I guess we have to change the repository implementation in order to make this possible, but I'm not sure about that.
So my question is: Is my guess correct, or is it more complex? And how can it be done then?
Thanks!
Update: I see that Orchard's IRepository interface requires LINQ provider to be implemented. That's impossible in this scenario since the web services are offered via SOAP.
I'll better further describe the scenario:
The website we wish to build has to use web services to get information about an organization members and units. We would like to display members of some organizational unit, for example, on the website. We also want to create our own content type "Event" that should have an M:N relationship (Attendees) with "Member" (from WS).
You don't have to implement an IRepository in case you don't want to fully direct the part storage to somewhere else. I'm currently using WCF service in one of my Orchard-based projects, so your scenario is similar.
You can do it this way:
OnLoaded<MyPart>((ctx, part) => {
part.MyProperty = myService.GetMyProperty(part.SomeIdToLookup);
});
Of course you can use other handler events (like OnInitialized, OnCreated, OnPublished etc). You can read more about content handlers here.
I'd also recommend getting a dev startup module from Codeplex for quick development.
Actually you don't need to use a repository or even a record. Depending on what you are trying to do, triggering the fetching logic from a handler might work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With