Tmx.ReceiveTestTaskCommand.Execute C# (CSharp) Method

Execute() private method

private Execute ( ) : void
return void
        internal override void Execute()
        {
            var cmdlet = (ReceiveTmxTestTaskCommand)Cmdlet;
            var clientSettings = ClientSettings.Instance;
            clientSettings.StopImmediately = false;
            
            // 20150918
            // var taskLoader = new TaskLoader(new RestRequestCreator());
            // var taskLoader = new TaskLoader();
            var taskLoader = ProxyFactory.Get<TaskLoader>();
            // 20141020 squeezing a task to its proxy
            ITestTask task = null;
            // ITestTaskProxy task = null;
            // ITestTaskCodeProxy task = null;
            
            // temporarily
            // TODO: to a template method
            var startTime = DateTime.Now;
            while (!clientSettings.StopImmediately) {
                
                // TODO: move to aspect
                try {
                    task = taskLoader.GetCurrentTask();
                }
                catch (ClientNotRegisteredException) {
                    if (Guid.Empty != ClientSettings.Instance.ClientId && string.Empty != ClientSettings.Instance.ServerUrl) {
                        // 20150918
                        // var registration = new Registration(new RestRequestCreator());
                        // var registration = new Registration();
                        var registration = ProxyFactory.Get<Registration>();
                        ClientSettings.Instance.ClientId = registration.SendRegistrationInfoAndGetClientId(ClientSettings.Instance.CurrentClient.CustomString);
                    }
                    
                    // TODO: AOP
                    Trace.TraceWarning("ReceiveTestTaskCommand.1");
                    // temporary
                    Trace.TraceWarning("ClientNotRegisteredException");
                    
                    throw;
                }
                catch (Exception e) {
                    // NullreferenceException
                    
                    // TODO: AOP
                    Trace.TraceWarning("ReceiveTestTaskCommand.2");
                    // temporary
                    Trace.TraceWarning(e.Message);
                }
                
                if (null != task)
                    break;
                
                if (!cmdlet.Continuous)
                    if ((DateTime.Now - startTime).TotalSeconds >= cmdlet.Seconds)
                        throw new Exception("Failed to receive a task in " + cmdlet.Seconds + " seconds");
                
                System.Threading.Thread.Sleep(Preferences.ReceivingTaskSleepIntervalMilliseconds);
            }
            
            clientSettings.StopImmediately = false;
            clientSettings.CurrentTask = task;
            
            cmdlet.WriteObject(task);
        }
    }

Usage Example

 protected override void BeginProcessing()
 {
     var command = new ReceiveTestTaskCommand(this);
     command.Execute();
 }
ReceiveTestTaskCommand