private List <DeviceRolePermission> GetDeviceRolePermissionFromUI() { var result = new List <DeviceRolePermission>(); var selected = DeviceDtos.FindAll(x => x.IsSelected); foreach (var checkboxItem in selected) { var rolePermission = CurrentDeviceRole.DeviceRolePermissions.FirstOrDefault(x => x.DeviceID == checkboxItem.ID); if (rolePermission == null) { rolePermission = new DeviceRolePermission() { DeviceID = checkboxItem.ID, DeviceRoleID = CurrentDeviceRole.DeviceRoleID, Enable = true, STARTDATE = DateTime.Now, }; } rolePermission.PermissionAction = (DevicePermissionAction)SelectedPermissionAction; rolePermission.AllowedAccessTimeZoneID = SelectedTimezone.TimeZoneID; result.Add(rolePermission); } return(result); }
private void SyncData() { DispatcherHelper.CheckBeginInvokeOnUI(async() => { string message = ""; var controller = await DialogCoordinator.Instance.ShowProgressAsync(this, "同步数据", "同步数据中,请稍等"); controller.SetIndeterminate(); await Task.Run(() => { try { DSProxy.ResultTypes resultTypes; string[] messages; if (SyncUserType == SyncUserType.SyncDeviceToUser) { var devices = new[] { SelectedDevice }; var users = SelectedSyncUserDtos.Select(u => { var userId = string.IsNullOrWhiteSpace(u.Description) ? 0 : u.Description.ToInt32(); var userCode = u.ID.ToString(); return(new User() { UserID = userId, UserCode = userCode, Name = u.DisplayName }); }); resultTypes = new DSProxy.DeviceServiceClient().SyncSystemUsers(devices.ToArray(), users.ToArray(), out messages); } else { var devices = DeviceDtos.FindAll(d => d.IsSelected).Select(dd => new DeviceController() { DeviceID = dd.ID }); var users = SelectedSyncUserDtos.Select(u => new User() { UserID = u.ID, Name = u.DisplayName }); resultTypes = new DSProxy.DeviceServiceClient().SyncDeviceUsers(devices.ToArray(), DSProxy.SyncOption.Unknown, users.ToArray(), out messages); } message = MessageHandler.GenerateDeviceMessage(resultTypes, messages, "同步数据成功!", "同步数据失败!"); } catch (Exception ex) { Log.Error(ex); message = "同步数据失败!"; } }); await controller.CloseAsync(); Messenger.Default.Send(new NotificationMessage(message), Tokens.SyncUserView_ShowNotification); }); }
private void SyncData() { DispatcherHelper.CheckBeginInvokeOnUI(async() => { string message = ""; var controller = await DialogCoordinator.Instance.ShowProgressAsync(this, "同步数据", "同步数据中,请稍等"); controller.SetIndeterminate(); await Task.Run(() => { try { var devices = DeviceDtos.FindAll(d => d.IsSelected).Select(dd => new DeviceController() { DeviceID = dd.ID }); var departments = SelectedSyncDepartmentDtos.Select(u => new Department() { DepartmentID = u.ID }); string[] messages; DSProxy.ResultTypes resultTypes = new DSProxy.DeviceServiceClient().SyncDepartmentUsers(departments.ToArray(), devices.ToArray(), out messages); message = MessageHandler.GenerateDeviceMessage(resultTypes, messages, "同步数据成功!", "同步数据失败!"); } catch (Exception ex) { Log.Error(ex); message = "同步数据失败!"; } }); await controller.CloseAsync(); SendMessage(message); }); }