Click or drag to resize

JobTStatus Property

Gets the status of the job

Namespace:  Esri.ArcGISRuntime.Tasks
Assembly:  Esri.ArcGISRuntime (in Esri.ArcGISRuntime.dll) Version: 100.11.0
public JobStatus Status { get; }

Property Value

Type: JobStatus


Example Name: ListGeodatabaseVersions

Connect to a service and list versions of the geodatabase.

Code example screen shot.

// Copyright 2016 Esri.
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
// You may obtain a copy of the License at:
// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an 
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific 
// language governing permissions and limitations under the License.

using Esri.ArcGISRuntime.Data;
using Esri.ArcGISRuntime.Tasks;
using Esri.ArcGISRuntime.Tasks.Geoprocessing;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using System.Windows;

namespace ArcGISRuntime.WPF.Samples.ListGeodatabaseVersions
        name: "List geodatabase versions",
        category: "Geoprocessing",
        description: "Connect to a service and list versions of the geodatabase.",
        instructions: "When the sample loads, a list of geodatabase versions and their properties will be displayed.",
        tags: new[] { "conflict resolution", "data management", "database", "multi-user", "sync", "version" })]
    public partial class ListGeodatabaseVersions
        // Url to used geoprocessing service
        private const string ListVersionsUrl =

        public ListGeodatabaseVersions()

            // Create the UI, setup the control references and execute initialization 

        private async void Initialize()
            // Set the UI to indicate that the geoprocessing is running

                // Get versions from a geodatabase
                IFeatureSet versionsFeatureSet = await GetGeodatabaseVersionsAsync();

                // Continue if we got a valid geoprocessing result
                if (versionsFeatureSet != null)
                    // Create a string builder to hold all of the information from the geoprocessing 
                    // task to display in the UI 
                    StringBuilder myStringBuilder = new StringBuilder();

                    // Loop through each Feature in the FeatureSet 
                    foreach (Feature version in versionsFeatureSet)
                        // Get the attributes (a dictionary of <key,value> pairs) from the Feature
                        IDictionary<string,object> myDictionary = version.Attributes;

                        // Loop through each attribute (a <key,value> pair)
                        foreach (KeyValuePair<string,object> attribute in myDictionary)
                            // Add the key and value strings to the string builder 
                            myStringBuilder.AppendLine(attribute.Key + ": " + attribute.Value);

                        // Add a blank line after each Feature (the listing of geodatabase versions)

                    // Display the result in the textbox
                    ResultView.Text = myStringBuilder.ToString();
            catch (Exception e)
                MessageBox.Show(e.ToString(), "Error");

            // Set the UI to indicate that the geoprocessing is not running

        private async Task<IFeatureSet> GetGeodatabaseVersionsAsync()
            // Results will be returned as a feature set
            IFeatureSet results = null; 

            // Create new geoprocessing task 
            GeoprocessingTask listVersionsTask = await GeoprocessingTask.CreateAsync(new Uri(ListVersionsUrl));

            // Create default parameters that are passed to the geoprocessing task
            GeoprocessingParameters listVersionsParameters = await listVersionsTask.CreateDefaultParametersAsync();

            // Create job that handles the communication between the application and the geoprocessing task
            GeoprocessingJob listVersionsJob = listVersionsTask.CreateJob(listVersionsParameters);
                // Execute analysis and wait for the results
                GeoprocessingResult analysisResult = await listVersionsJob.GetResultAsync();

                // Get results from the outputs
                GeoprocessingFeatures listVersionsResults = (GeoprocessingFeatures)analysisResult.Outputs["Versions"];

                // Set results
                results = listVersionsResults.Features;
            catch (Exception ex)
                // Error handling if something goes wrong
                if (listVersionsJob.Status == JobStatus.Failed && listVersionsJob.Error != null)
                    MessageBox.Show("Executing geoprocessing failed. " + listVersionsJob.Error.Message, "Geoprocessing error");
                    MessageBox.Show("An error occurred. " + ex.ToString(), "Sample error");
                // Set the UI to indicate that the geoprocessing is not running

            return results;

        private void SetBusy(bool isBusy = true)
            if (isBusy)
                // Change UI to indicate that the geoprocessing is running
                BusyOverlay.Visibility = Visibility.Visible;
                Progress.IsIndeterminate = true;
                // Change UI to indicate that the geoprocessing is not running
                BusyOverlay.Visibility = Visibility.Collapsed;
                Progress.IsIndeterminate = false;
<UserControl x:Class="ArcGISRuntime.WPF.Samples.ListGeodatabaseVersions.ListGeodatabaseVersions"
             d:DesignHeight="300" d:DesignWidth="300">
                <RowDefinition Height="Auto" />
                <RowDefinition Height="*" />
            <TextBlock Text="Current versions" Grid.Row="0" HorizontalAlignment="Center"/>
            <TextBox x:Name="ResultView" Grid.Row="1" TextWrapping="Wrap" ScrollViewer.VerticalScrollBarVisibility="Visible" />
        <Grid x:Name="BusyOverlay" Visibility="Collapsed" Background="#8C000000" Grid.RowSpan="4">
            <Border HorizontalAlignment="Center" VerticalAlignment="Center" Padding="10" Background="#FFC6C4C4">
                    <ProgressBar IsIndeterminate="True" x:Name="Progress" Height="20" />
                    <TextBlock Text="Getting versions from the geoprocessing task..." HorizontalAlignment="Left" Margin="5" Height="Auto" />
See Also
Additional Examples
Hyperlink to ExampleDescription
AnalyzeHotspotsUse a geoprocessing service and a set of features to identify statistically significant hot spots and cold spots.
AnalyzeViewshedCalculate a viewshed using a geoprocessing service, in this case showing what parts of a landscape are visible from points on mountainous terrain.
ApplyScheduledUpdatesApply scheduled updates to a downloaded preplanned map area.
EditAndSyncFeaturesSynchronize offline edits with a feature service.
ExportTilesDownload tiles to a local tile cache file stored on the device.
GenerateGeodatabaseGenerate a local geodatabase from an online feature service.
GenerateOfflineMapTake a web map offline.
GenerateOfflineMapWithOverridesTake a web map offline with additional options for each layer.
GeodatabaseTransactionsUse transactions to manage how changes are committed to a geodatabase.
ListGeodatabaseVersionsConnect to a service and list versions of the geodatabase.
LocalServerGeoprocessingCreate contour lines from local raster data using a local geoprocessing package `.gpk` and the contour geoprocessing tool.
OfflineBasemapByReferenceUse the `OfflineMapTask` to take a web map offline, but instead of downloading an online basemap, use one which is already on the device.