User Profile & Activity

Nicholas Lie Member
nicholas@intersoftsolutions.com
Page
of 3
You'll simply need this code:
this.Repository.EntityContainer.Attach(yourEntity);

If you update entities out of our usual lifecycle, you'll still need to insert your entity to the EntityContainer, since the EntityContainer manages the relationships between the entities, and it also tracks the EntityState, whether it's newly added, modified, or deleted.

Much like in our implementation in AppFramework, (http://git.intersoftsolutions.com/projects/CROS/repos/frameworks/browse/Intersoft.AppFramework/ModelServices/EditableEntityRepository.cs, line 181), this is what truly happens when you perform SaveChangesAsync(), it executes PrepareSavedEntities, which relies on the information from the EntityContainer.

So what you have done is correct, but to be able to edit the item, the entity needs to be inserted to the EntityContainer first.

If the code doesn't work, it might need the additional Replace param as the EntityConflictResolution strategy.
this.Repository.EntityContainer.Attach(yourEntity); ((IAsyncBatchUpdate)this.Repository).EntityContainer.AttachEntity(yourItem, Intersoft.Crosslight.Data.EntityConflictResolution.Replace);

 

Hi William,

I'm sure that you're already aware that each ViewModel represents a View, in this case, the Fragment is the View that consumes that your ViewModel.

So basically, in the ViewModel, you may call your custom service in the following fashion:

ICustomService customService = ServiceProvider.GetService<ICustomService>();if (customService != null){
customService.SetOwner(this);
customService.ExecuteCustomMethod();
}

 So, in your custom Android service, you can obtain the Context in the following fashion:

Context context = this.DispatchContext(this.Owner);

This is the whole key to the process. In Android, the Context object can be of three types: Activity, Fragment, or Global Application Context. Since you've associated the ViewModel to the Fragment, you've actually obtained the Fragment in the Context object, so you can easily safe-cast it to execute your public method in the Fragment.

MyFragment fragment = context as MyFragment;
if (fragment != null)
{
fragment.ExecuteMyPublicMethod();
}

Hope this helps. 

Posted: September 30, 2014 3:50 PM

Hi Ryan,

We've just released the new Crosslight 2.0 Update 5 which fixes your web view issue on Android. You can obtain the latest assemblies here: http://git.intersoftpt.com/projects/CROS/repos/updates/browse. The full changelog can be found here: http://developer.intersoftpt.com/display/crosslight/Crosslight+2.0+Update+5+Release+Notes

To answer your question, we've currently verified the functionality of both iOS and Android social login feature. Currently Android supports only the web-view based authenticated login, however, we're currently researching on how to find ways to support native social login on Android. The social login issue on Windows Phone, however, is still under investigation under the same backlog: CROS-583. Will keep you posted.

Posted: June 10, 2014 8:41 AM

Hi Thomas,

Thanks for the post. We are aware of the issue, and we're currently doing a hotfix this month to address your issue, in which we'll change the Mono.Android.Support.V4 assembly to use the new Xamarin.Android.Support.V4. In the next version, we're also planning to drop the support library completely and use the Mono.Android library fully. We will keep you updated regarding this issue. Very sorry for the inconvenience.

Hi Domingo,

If you notice in the DataListViewModelBase, we have an overridable Repository property. By default, Crosslight supports WebAPI repository as we think it provides a leaner queries and a more flexible REST-based requests. We highly recommend you to migrate to the WebAPI infrastructure if possible. However, if this is not possible, you will require to override the Repository property and provide the custom implementations of the repository that will handle the incremental loading of your applications.

Judging by the method definfition (public Task<IEnumerable<MachineItem>> GetListOfMachines()), it seems that is not quite possible, unless, if you could provide some sort of range as the "range" for the query. Perhaps something like GetListOfMachines(int startIndex, int endIndex), but still, you will need to handle the custom implementations. The DataListViewModelBase has properties that will help you to achieve the incremental loadingprocess, as outlined in  the documentation: http://developer.intersoftpt.com/display/crosslight/Enabling+Incremental+Loading.

Hi Domingo,

I have uploaded a sample here: http://git.intersoftpt.com/projects/CROS-SUPP/repos/bind-visibility-uitextfield/browse. You can try using this sample with the new Crosslight v2 assemblies.

Hi Nick,

You can download the new installer from our Request Trial site. This new installer will allow you to specify the location of the Mobile Studio to be installed. The installer is available through either dashboard or RequestTrial page.

By default, the installer will remove the old ProjectWizard assembly and replace it with the new one. To make sure, open up the Developer Command Prompt for Visual Studio, and run this command: "gacutil /l Intersoft.Crosslight.ProjectWizard" (without quotes). You should find the ProjectWizard updated to version 2.0.0.0, as seenin the attachment.

The VSIX is only used for the installation for Entity Designer Extensions for Visual Studio, the Crosslight ProjectWizard's integration doesn't use VSIX, but instead, a combination of ProjectWizard assembly installed to the Global Assembly Cache and the ProjectTemplates folder in My Documents/Visual Studio 2012/ProjectTemplates/Visual C#/Intersoft Solutions/Mobile/CrosslightApp.zip.

To see the dropdown for Crosslight v2.0, you'll need to open up registry editor. Check the HKLM/Software folder. Make a backup of the registry. If you're running a 64-bit version of Windows, you'll find a Wow6432Node folder. if you happen to find the "Intersoft Solutions" folder as a sibling of the Wow6432Node folder, you'll need to delete the whole folder for the Crosslight 2.0 to properly show up in the Update Manager.

In short, you should not have the Intersoft Solutions folder under HKLM/Software (this only applies to 64-bit Windows), as seen in the attachment. Re-run the LicenseManager from the C:\Program Files (x86)\Intersoft Solutions\Crosslight 2\common\LicenseManager\ISNet.WebUI.LicenseManager.exe, then you should be able to install Crosslight license properly.

Posted: May 15, 2014 10:38 PM

Hi Thomas,

Now you can obtain the latest version of Crosslight by following the steps outlined in this document: http://developer.intersoftpt.com/display/crosslight/Updating+Crosslight. Feel free to ask if there are any further questions.

Hi Domingo,

Now you can obtain the latest Crosslight assemblies from our nightly build repo by following the steps outlined in this document: http://developer.intersoftpt.com/display/crosslight/Updating+Crosslight. I've also added a sample on which you can test the nested modal navigation you're having fixed in this sample: http://git.intersoftpt.com/projects/CROS-SUPP/repos/modal-back-missing/browse. Let us know if this solved your issue. Thanks!

Hi Nick,

We're currently setting up a nightly bulid repo infrastructure for customers to be able to obtain latest Crosslight assemblies. Will keep you posted on this issue. Thanks for the valuable feedback.

All times are GMT -5. The time now is 4:15 PM.
Previous Next