public void StartWithWorkerId(string workerId)
        {
            var managerCoreServicesClient = new ManagerCoreServicesClient();
            var managerCoreServicesProxy  = managerCoreServicesClient.ManagerCoreServicesProxy;

            ManagerCoreServicesProxy = managerCoreServicesProxy;
            WorkAssignment           = ManagerCoreServicesProxy.GetWorkAssignment(workerId);

            Init();

            State = WorkerState.Starting;
            try
            {
                BeginWork();
            }
            catch (Exception ex)
            {
                ProblemReport problemReport = new ProblemReport(WorkerId, WorkerStage.BeginWork, ex);
                problemReport.SendProblemReport(ReportPipe);
                ex.Trace().Swallow();

                Tracer.Debug("WorkerBase: Worker {0} is cleaning and quitting now", WorkerId);
                CleanAndQuit();
                return;
            }
            State = WorkerState.Started;

            RunWorker();

            CleanAndQuit();
        }
        public void StartWithWorkerId(string workerId)
        {
            var managerCoreServicesClient = new ManagerCoreServicesClient();
            var managerCoreServicesProxy = managerCoreServicesClient.ManagerCoreServicesProxy;
            ManagerCoreServicesProxy = managerCoreServicesProxy;
            WorkAssignment = ManagerCoreServicesProxy.GetWorkAssignment(workerId);

            Init();

            State = WorkerState.Starting;
            try
            {
                BeginWork();
            }
            catch (Exception ex)
            {
                ProblemReport problemReport = new ProblemReport(WorkerId, WorkerStage.BeginWork, ex);
                problemReport.SendProblemReport(ReportPipe);
                ex.Trace().Swallow();

                Tracer.Debug("WorkerBase: Worker {0} is cleaning and quitting now", WorkerId);
                CleanAndQuit();
                return;
            }
            State = WorkerState.Started;

            RunWorker();

            CleanAndQuit();
        }