User Profile & Activity

Product Support Moderator
Page
of 22

Hello Jimmy,

Yes, we've reviewed this case with our architect team. We have verified that this scenario is one of the advanced relationship scenarios that we will support in the next release. It's unlikely to have workaround for this case, because the support for these scenarios need to be implemented in an end-to-end fashion. The entire range of the toolset, from the repositories, frameworks to the designer tools need to be enhanced altogether, while at the same time re-running all unit tests the existing simpler cases to ensure no regressions.

The good news is that we've raised this feature to a higher priority in our roadmap. We're expecting a feature-complete beta build to be available in early March. We'll keep you posted on this update.

Thanks!

Hello Jimmy,

When you have tables with complex relationships, Entity Framework may automatically combines the entities into a single entity. You might want to check if that's the case, then see if the resulting generation code matchedthe EF entities.

At the entity container level, just in time, our next release will support multiple primary keys as well as very complex composite relations. Check out our roadmap here: http://developer.intersoftpt.com/display/crosslight/Crosslight+Roadmap.

When the entity container supports complex relations, yes, it will also work with data synchronization.

At the meantime, could you send over a sample of your db design that represent your complex scenarios? Thisallows us to ensure if it has been supported in current release. Otherwise, we will make sure it work flawlessly in the next update.

Hope this helps!

Glad to hear everything works out great for you!

If you've submitted any Crosslight apps to Store, please let us know and we'd love to see it in action. :)


Posted: February 12, 2015 7:55 AM

Hello Thomas,

Thank you for your patience.

Please check out our recently published roadmap here.

Hope this helps!

On top of Yudi's response, of course, you'll also need to create a custom class that derives from WebApiAccountService where you need to override the RegisterDefaultAuthenticator and GetDefaultAuthenticator methods, to link the default authenticator to the one you created in the step above. See the following example.



public class MyWebApiAccountService : WebApiAccountService
{

protected override void RegisterDefaultAuthenticator() { this.AuthenticationService.Register<CustomWebApiAuthenticator>(this.AccountServiceId); } protected override WebApiAuthenticator GetDefaultAuthenticator() { return this.AuthenticationService.GetAuthenticator<CustomWebApiAuthenticator>(); }

}

Finally, remember to replace the new authenticator in the AppService.

           
ServiceProvider.AddService<IAccountService, MyWebApiAccountService>();

And that's the beauty of IoC design pattern which is heavily used in Crosslight. It allows you to extend or replace most functionalities in Crosslight, just like that.

Hope this helps.


Posted: February 7, 2015 11:13 AM

Hello Thomas,

The issue #1 has been filed under CROS-722 backlog. A nightly build that addresses this issue will be posted on the upcoming Monday.

Thanks!

Hello Jimmy,

I was previously assuming that you already have a custom way to call the SP. Our best practice is usually generating the functions automatically from the EDMX to avoid mistakes in parameters definition, which is also goodfor maintenance. When the specific SP is added to the EDMX, Intersoft Entity Designer will automatically generate the code in both EntityContext and in the Controller. Technically, the underlying code in the EntityContext actually use "Context" to perform the SP call which is completely fine since it routes the call to SP directly without requiring LINQ.

You can then simply call the SP in your query method such as shown in the simple code snippet below:



[HttpGet]public QueryResult ItemsByName(string name, ODataQueryOptions<Item> options) { return new QueryResult() { Results = this.GetItemsByName(name), InlineCount = this.Request.GetInlineCount() }; }

In the above example, the query calls the GetItemsByName method which was an auto-generated method fromthe Intersoft Entity Designer.

However, please note that the InlineCount might not work using the built-in Request.GetInlineCount method since the actual query is performed with a custom SP. In that case, you'll need to come up with another SP that returns the total number of rows of the query. But, if the app doesn't require paging, then InlineCount is not required.

Hope this helps!

Posted: January 27, 2015 5:39 PM

Dear Thomas,

The iOS 8 SDK requirement for both new apps and updates were announced by Apple itself. Please refer to the following:

As seen in the above announcements, Apple mentioned both 64-bit and iOS 8 -- not just 64-bit.

However, with regards to the iOS 7 support, Crosslight iOS Unified should still work with iOS 7. It is just we areencouraging customers to upgrade to iOS 8 whenever possible to comply to Apple's requirements in the shortest time possible.

Hope this helps.

Hello Jimmy,

The incremental loading, filtering and paging are actually features that were built into the EntityController. Behind the scene, the options passed from the client is transformed into LINQ expression which is then sent to theserver for execution.

Per our experience, it will be quite tedious to achieve these functions at SP level, since you need to parse each option and apply it to your query subsequently.

However, let's say you already managed to implement the functions at SP, you can continue using QueryResult using the same method signature. But, instead of executing the query using db.Context, you call the desired SP and pass the needed parameters manually. Once your query returns, pass the result (should be either IList orIEnumerable) to the Results property of the QueryResult. This should allow the method to be still compatible withe client request, while at the same time enable you to use custom SP call in the server.

Hope this helps.

Hello Jimmy,

Looking at your code, it supposed to work correctly. I also presume that you already have the appSettings registered in the constructor (which set other settings). As long as the appSettings was previously registered, you will then be able to resolve it at any point of your application, including OnStart method. The changes you made to the appSettings in the OnStart will persist automatically (as it's instance member assignment).

If you still encounter issue, feel free to post the error details so we can help to investigate what could be missing.

Hope this helps.

All times are GMT -5. The time now is 11:27 PM.
Previous Next