private bool TryGetConditions(int pageIndex, int pageSize, out Hashtable conditions)
        {
            var errors = new List <string>();

            Int32 pageStart = pageSize * (pageIndex - 1) + 1;
            Int32 pageEnd   = pageSize * pageIndex;

            EndDate = EndDate.AddDays(1).AddSeconds(-1);

            conditions = new Hashtable()
            {
                { "StartDate", StartDate },
                { "EndDate", EndDate },
                { "PageStart", pageStart },
                { "PageEnd", pageEnd },
            };

            if (!string.IsNullOrWhiteSpace(DeviceCode))
            {
                if (DeviceCode.ToInt32() == ConvertorExtension.ConvertionFailureValue)
                {
                    errors.Add("设备编号的输入值必须是数字");
                }
                if (ApplicationManager.GetInstance().AuthorizationDevices.All(x => x.Code != DeviceCode))
                {
                    errors.Add("输入的设备编号不存在系统中");
                }

                conditions.Add("DeviceCode", DeviceCode);
            }

            if (!string.IsNullOrWhiteSpace(UserCode))
            {
                if (UserCode.ToInt32() == ConvertorExtension.ConvertionFailureValue)
                {
                    errors.Add("人员工号的输入值必须是数字");
                }

                conditions.Add("DeviceUserId", UserCode);
            }

            if (!string.IsNullOrWhiteSpace(OperatorId))
            {
                if (OperatorId.ToInt32() == ConvertorExtension.ConvertionFailureValue)
                {
                    errors.Add("操作人员工号的输入值必须是数字");
                }

                conditions.Add("OperatorId", OperatorId);
            }

            if (errors.Any())
            {
                var message = string.Join("\n", errors);
                DispatcherHelper.CheckBeginInvokeOnUI(() =>
                {
                    Messenger.Default.Send(new NotificationMessage(message), Tokens.DeviceOperationLogPage_ShowNotification);
                });
                return(false);
            }

            return(true);
        }
Beispiel #2
0
        private void QueryDeviceUser()
        {
            if (SelectedDevice == null)
            {
                SendMessage("选择设备不能为空。");
                return;
            }

            if (!string.IsNullOrWhiteSpace(UserCode) && UserCode.ToInt32() == ConvertorExtension.ConvertionFailureValue)
            {
                SendMessage("输入的人员工号值无效。");
                return;
            }

            DispatcherHelper.CheckBeginInvokeOnUI(async() =>
            {
                string message = "";
                DSProxy.DeviceUserDto[] deviceUsers = null;

                var controller = await DialogCoordinator.Instance.ShowProgressAsync(this, "查询设备人员", "查询设备人员中,请稍等");
                controller.SetIndeterminate();

                await Task.Run(() =>
                {
                    try
                    {
                        DSProxy.ResultTypes resultTypes;
                        string[] messages;

                        deviceUsers = new DSProxy.DeviceServiceClient().QueryDeviceUsers(SelectedDevice, UserCode, out resultTypes, out messages);
                        message     = MessageHandler.GenerateDeviceMessage(resultTypes, messages, "", "查询设备人员失败!");
                    }
                    catch (Exception ex)
                    {
                        Log.Error(ex);
                        message = "查询设备人员失败!";
                    }
                });

                await controller.CloseAsync();

                if (!string.IsNullOrWhiteSpace(message))
                {
                    Messenger.Default.Send(new NotificationMessage(message), Tokens.SyncUserView_ShowNotification);
                }
                else
                {
                    DeviceUserDtos = new ObservableCollection <SelectableItem>();
                    if (deviceUsers != null && deviceUsers.Any())
                    {
                        deviceUsers.OrderBy(x => x.UserCode).ForEach(x =>
                        {
                            var item = new ComboBoxItem()
                            {
                                ID = x.UserCode, DisplayName = x.UserName
                            };
                            var conditions = new Hashtable()
                            {
                                { "UserCode", x.UserCode }
                            };
                            var userInfo = _userRepo.QueryUsersForSummaryData(conditions).FirstOrDefault();
                            if (userInfo != null)
                            {
                                item.Description = userInfo.UserID.ToString();
                            }

                            DeviceUserDtos.Add(item);
                        });
                    }
                }
            });
        }