コード例 #1
0
        public void QueryEmployeeByName(string empName)
        {
            EmployeeQueryHandlerWebServer employeeQueryHandlerWebServer = new EmployeeQueryHandlerWebServer(_connectionAgent);
            EmplyeeViewModelQuery         emplyeeViewModelQuery         = new EmplyeeViewModelQuery(employeeQueryHandlerWebServer,
                                                                                                    EmplyeeViewModelQuery.SearchFilter.ByEmployeeName);
            Task workItemsLoadingTask = Task.Run(() => emplyeeViewModelQuery.GetEmployeesAsync(empName));

            workItemsLoadingTask.Wait();
            Assert.IsTrue(emplyeeViewModelQuery.RetrievedEmployees.Count > 0);
        }
コード例 #2
0
        private Employee GetEmployeeById(int empId)
        {
            Employee retrievedEmployee = null;
            EmployeeQueryHandlerWebServer employeeQueryHandlerWebServer = new EmployeeQueryHandlerWebServer(_connectionAgent);
            EmplyeeViewModelQuery         emplyeeViewModelQuery         = new EmplyeeViewModelQuery(employeeQueryHandlerWebServer,
                                                                                                    EmplyeeViewModelQuery.SearchFilter.ByEmployeeId);
            Task workItemsLoadingTask = Task.Run(() => emplyeeViewModelQuery.GetEmployeesAsync(empId.ToString()));

            workItemsLoadingTask.Wait();
            if (emplyeeViewModelQuery.RetrievedEmployees.Count == 1)
            {
                retrievedEmployee = emplyeeViewModelQuery.RetrievedEmployees[0];
            }
            return(retrievedEmployee);
        }
コード例 #3
0
        private void ButtonFind_Click(object sender, RoutedEventArgs e)
        {
            string empId = TextBoxEmployeeId.Text.Trim();

            try
            {
                int.TryParse(empId, out int employeeId);
                if (employeeId == 0)
                {
                    MessageBox.Show("Please enter valid Employee Id.", Title, MessageBoxButton.OK, MessageBoxImage.Information);
                }
                else
                {
                    Task employeesLoadingTask = Task.Run(() => _employeeViewModelQuery.GetEmployeesAsync(empId));
                    Mouse.OverrideCursor = Cursors.Wait;
                    //wait till the retrieval process completes
                    employeesLoadingTask.Wait();
                    Mouse.OverrideCursor = null;
                    if (_employeeViewModelQuery.RetrievedEmployees.Count > 1)
                    {
                        MessageBox.Show("More than one employee exist for the given filter.", Title, MessageBoxButton.OK, MessageBoxImage.Information);
                    }
                    else if (_employeeViewModelQuery.RetrievedEmployees.Count == 0)
                    {
                        MessageBox.Show("No employee is found for the given Id.", Title, MessageBoxButton.OK, MessageBoxImage.Information);
                    }
                    else
                    {
                        _employeeViewModelUpdate.EmployeeId     = _employeeViewModelQuery.RetrievedEmployees[0].Id;
                        _employeeViewModelUpdate.EmployeeName   = _employeeViewModelQuery.RetrievedEmployees[0].Name;
                        _employeeViewModelUpdate.EmployeeEmail  = _employeeViewModelQuery.RetrievedEmployees[0].Email;
                        _employeeViewModelUpdate.EmployeeGender = _employeeViewModelQuery.RetrievedEmployees[0].Gender;
                    }
                }
            }
            catch (Exception ec)
            {
                MessageBox.Show("Error while updating the employee details." + Environment.NewLine +
                                $"Error: {ec.Message}", Title, MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
コード例 #4
0
        private void RetrieveAndShowEmployees(string filterToApply = "")
        {
            bool showEmployees = true;
            string txtToDisplayInLabel = "Retrieving the selected employees' information ...";
            try
            {
                if (DataGridEmployees.HasItems && _searchFilter == SearchFilter.NoFilter)
                {
                    MessageBoxResult messageBoxResult = MessageBox.Show
                            ("Loading employees takes a while." + Environment.NewLine +
                            "Do you still want to clear the currently loaded data and preceed with the search?"
                            , Title, MessageBoxButton.YesNo);
                    showEmployees = (messageBoxResult == MessageBoxResult.Yes);
                }

                if (showEmployees)
                {
                    LabelPageInfo.Content = txtToDisplayInLabel;
                    Task employeesLoadingTask;

                    if (_searchFilter == SearchFilter.ByPageNumber)
                    {
                        txtToDisplayInLabel = $"Retrieving the employees' information in page {_pageNoToRetrieve} of {_employeeViewModelQuery.TotalNoOfPages} ...";
                        employeesLoadingTask = Task.Run(() => _employeeViewModelQuery.GetEmployeesAsync(_pageNoToRetrieve.ToString()));
                    }
                    else
                    {
                        employeesLoadingTask = Task.Run(() => _employeeViewModelQuery.GetEmployeesAsync(filterToApply));
                    }
                    ButtonGoBack.IsEnabled = false;
                    Mouse.OverrideCursor = Cursors.Wait;
                    //wait till the retrieval process completes
                    employeesLoadingTask.Wait();

                    ButtonGoBack.IsEnabled = true;
                    Mouse.OverrideCursor = null;
                    DataGridEmployees.ItemsSource = _employeeViewModelQuery.RetrievedEmployees;
                    if (DataGridEmployees.HasItems)
                    {
                        DataGridEmployees.Columns.LastOrDefault().Width = new DataGridLength(1, DataGridLengthUnitType.Star);
                        if (_searchFilter == SearchFilter.ByPageNumber)
                        {
                            ButtonNextPage.IsEnabled = _employeeViewModelQuery.TotalNoOfPages > _pageNoToRetrieve;
                            ButtonPreviousPage.IsEnabled = _pageNoToRetrieve > 1;
                            LabelPageInfo.Content = $"Employees in page {_pageNoToRetrieve} of {_employeeViewModelQuery.TotalNoOfPages}";
                        }
                        else
                        {
                            LabelPageInfo.Content = $"{ _employeeViewModelQuery.RetrievedEmployees.Count} employee(s) is/are found.";
                        }
                    }
                    else
                    {
                        LabelPageInfo.Content = "No employee(s) is/are found for the given search critera.";
                    }
                    //Save the employee records (or serialize) into the XML
                    //_outputFileName = Path.Combine(GeneralUtils.OutPath, $"QueryEmployeeInfo.xml");
                    ExportToExcel();
                }
            }
            catch (Exception ec)
            {
                MessageBox.Show("Error while querying the employee details." + Environment.NewLine +
                    $"Error: {ec.Message}", Title, MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }