@rickfrankel - thanks, I've been looking for that code and that little piece of advice for ages.
@adam If you're using Ionic for app development see here: Ionic reop integrated with Zero The way I have achieved a single app for all tenants is to build a registration system. Enter the tenant name in the app and pass back the tenantId which should be saved to local storage and used for all cookies thereafter. I have added a further step which is to register the device, notify the admin who then has to authorise the device before it can be used. Implement a device SignalR service so the device can be controlled from the server (i.e. found, tracked and local storage removed in case of a possible security breach).
@rajalla, see here: getting Hangfire to work in Zero
@josejunior, an invite to join the team was sent to your email address. I have just resent it.
@marble68 - it's an Ionic app and therefore not native. The port is not difficult but time-consuming and fiddly in places for abp, there's no great magic involved. The abcframework seems to be an attempt to link angular to cordova. That's exactly what the Ionic app does.
@Mitch, They key to the multi-select component is to have two arrays, one for available items and one for selected items, the latter of which forms part of your form group. I know you're JQuery but hopefully the following Angular code should help:
<kendo-multiselect
[data]="availableOrganizationUnits"
textField="displayName"
valueField="id"
[(ngModel)]="selectedOrganisationUnits"
(valueChange)="onOrganizationUnitChange($event)"
style="margin-left:2rem;vertical-align:middle;display:inline-block;">
</kendo-multiselect>
public availableOrganizationUnits = new Array<OrganizationUnitDto>();
public selectedOrganisationUnits: Array<OrganizationUnitDto>;
public selectedOrganisationUnitIdsAsString: string;
get data....
.subscribe((result) => {
if (result.organizationUnits.length > 0) {
this.availableOrganizationUnits = result.organizationUnits;
...
onOrganizationUnitChange(organisationUnits: Array<OrganizationUnitDto>): void {
this.selectedOrganisationUnitIdsAsString = _.map(organisationUnits, 'id').toString();
this.getDataAndSetChartData(moment(this.range.start), moment(this.range.end), false);
}
@ismcagdas, interesting. I will take your advice and refactor.
@ismcagdas, I have DTO's defined in Core.Shared to support SignalR implementation in Web.Core. Thus, when I want to send an alert to all online devices I need access to a DeviceAlertInput object but I also need access to they same DTO in my Application project to fire the alert from the angular project in the first place. Surely there are some instances when DTO's need to be placed in the Core.Shared when they are shared between Application and Web.Core?
@kwanp - if you need two database contexts (which is what I think you're asking) you can follow the instructions here: how to use multiple databases in aspnet zero Hope that helps.
HI Jose, I have invited you to the group. Feedback would be most appreciated. Bob