public ServiceProcess Execute(string selectedUrIs, string referenceComponentUri)
		{
            if (string.IsNullOrEmpty(selectedUrIs))
			{
                throw new ArgumentNullException("selectedUrIs");
			}

            if (string.IsNullOrEmpty(referenceComponentUri))
			{
                throw new ArgumentNullException("referenceComponentUri");
			}

            selectedUrIs = selectedUrIs.Replace("[", "");
            selectedUrIs = selectedUrIs.Replace("]", "");
            selectedUrIs = selectedUrIs.Replace("\"", "");
            CompSyncParameters arguments = new CompSyncParameters { SelectedUrIs = selectedUrIs.Split(','), ReferenceComponentUri =referenceComponentUri };
			return ExecuteAsync(arguments);
		}
        public ServiceProcess Execute(string selectedUrIs, string referenceComponentUri)
        {
            if (string.IsNullOrEmpty(selectedUrIs))
            {
                throw new ArgumentNullException("selectedUrIs");
            }

            if (string.IsNullOrEmpty(referenceComponentUri))
            {
                throw new ArgumentNullException("referenceComponentUri");
            }

            selectedUrIs = selectedUrIs.Replace("[", "");
            selectedUrIs = selectedUrIs.Replace("]", "");
            selectedUrIs = selectedUrIs.Replace("\"", "");
            CompSyncParameters arguments = new CompSyncParameters {
                SelectedUrIs = selectedUrIs.Split(','), ReferenceComponentUri = referenceComponentUri
            };

            return(ExecuteAsync(arguments));
        }
        public override void Process(ServiceProcess process, object arguments)
        {
            CompSyncParameters parameters = (CompSyncParameters)arguments;

            if (parameters.SelectedUrIs == null)
            {
                throw new BaseServiceException(string.Format(CultureInfo.InvariantCulture, "List '{0}' is null.", parameters.SelectedUrIs));
            }

            var client = Client.GetCoreService();

            try
            {
                int           i = 0;
                ComponentData ReferenceComponentData = client.Read(parameters.ReferenceComponentUri, new ReadOptions()) as ComponentData;

                foreach (string uri in parameters.SelectedUrIs)
                {
                    ComponentData currentComponent = client.Read(uri, new ReadOptions()) as ComponentData;
                    process.SetStatus("Synchronizing: " + currentComponent.Title);
                    _processedItems.Add(uri);
                    process.SetCompletePercentage(++i * 100 / parameters.SelectedUrIs.Length);
                    System.Threading.Thread.Sleep(500);                     // Temp, until it actually does something :)
                }
                process.SetStatus("Synchronization succesfully finished!");
                process.Complete();
                _processedItems = new ArrayList();
            }
            finally
            {
                if (client != null)
                {
                    client.Close();
                }
            }
        }