コード例 #1
0
ファイル: MergePin.cs プロジェクト: MattyJ/AFC-Solution
        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());
        }