public void Execute(Task task) { Debug.WriteLine("Fujitsu.AFC.Operations.MergePin.cs -> Processing Started."); var prfMonMethod = new PrfMon(); if (task.ToPin == null) { var message = string.Format(TaskResources.OperationsTaskRequest_InvalidRequestNoPin, task.Name); _taskService.CompleteUnrecoverableTaskException(task, message); throw new UnRecoverableErrorException(message); } if (task.FromPin == null) { var message = string.Format(TaskResources.OperationsTaskRequest_InvalidRequestNoPin, task.Name); _taskService.CompleteUnrecoverableTaskException(task, message); throw new UnRecoverableErrorException(message); } if (!_siteService.Query(x => x.Pin == task.ToPin.Value).Any()) { var message = string.Format(TaskResources.OperationsTaskRequest_PinDoesNotExist, task.Name, task.ToPin.Value); _taskService.CompleteUnrecoverableTaskException(task, message); throw new UnRecoverableErrorException(message); } if (!_siteService.Query(x => x.Pin == task.FromPin.Value).Any()) { var message = string.Format(TaskResources.OperationsTaskRequest_PinDoesNotExist, task.Name, task.FromPin.Value); _taskService.CompleteUnrecoverableTaskException(task, message); throw new UnRecoverableErrorException(message); } _pinService.MergePin(task); Debug.WriteLine("Fujitsu.AFC.Operations.MergePin.cs -> Completed Processing - FromPIN: {0} ToPIN : {1} Duration: {2:0.000}s", task.FromPin.Value, task.ToPin.Value, prfMonMethod.Stop()); }