/// <summary>
        /// Main method performing CoreService call to retrieve all AppData for the given item Uri
        /// </summary>
        /// <param name="process">ServiceProcee the async process to use</param>
        /// <param name="arguments">parameter object with item TcmUri to retrieve AppData for</param>
        public override void Process(ServiceProcess process, object arguments)
        {
            _data = new List <AppDataInspectorData>();

            AppDataInspectorParameters parameters = (AppDataInspectorParameters)arguments;

            process.SetCompletePercentage(10);
            process.SetStatus(Resources.ProgressStatusInitializing);

            using (var coreService = Client.GetCoreService())
            {
                process.SetCompletePercentage(20);
                process.SetStatus(Resources.AppDataInspectorRetrievingData);

                ApplicationData[] appDataList       = coreService.ReadAllApplicationData(parameters.ItemUri).OrderBy(data => data.ApplicationId).ToArray();
                double            progressIncrement = appDataList.Length == 0 ? 0 : 80 / appDataList.Length;      //nasty progress calculation
                int i = 1;

                foreach (ApplicationData appData in appDataList)
                {
                    _data.Add(new AppDataInspectorData                     // create response data object and add it to response data collection
                    {
                        ApplicationId = appData.ApplicationId,
                        Value         = ByteArrayToObject(appData).ToString(),
                        Type          = appData.TypeId
                    });

                    int progressPercentage = (int)(20 + i * progressIncrement);                     // some more nasty progress calculation
                    process.SetCompletePercentage(progressPercentage);
                    i++;
                }

                process.Complete(Resources.ProgressStatusComplete);
            }
        }
		public ServiceProcess Execute(string itemUri)
		{
			if (string.IsNullOrEmpty(itemUri))
			{
				throw new ArgumentNullException("itemUri");
			}

			AppDataInspectorParameters arguments = new AppDataInspectorParameters
			{
				ItemUri = itemUri
			};

			return ExecuteAsync(arguments);
		}
        public ServiceProcess Execute(string itemUri)
        {
            if (string.IsNullOrEmpty(itemUri))
            {
                throw new ArgumentNullException("itemUri");
            }

            AppDataInspectorParameters arguments = new AppDataInspectorParameters
            {
                ItemUri = itemUri
            };

            return(ExecuteAsync(arguments));
        }