Dwarrowdelf.Client.BuildItemManager.OnJobStatusChanged C# (CSharp) Method

OnJobStatusChanged() static private method

static private OnJobStatusChanged ( IJob job, JobStatus status ) : void
job IJob
status JobStatus
return void
        void OnJobStatusChanged(IJob job, JobStatus status)
        {
            StopCurrentJob();

            var sourceItems = this.CurrentBuildOrder.SourceItems;
            for (int i = 0; i < sourceItems.Length; ++i)
            {
                Debug.Assert(sourceItems[i].ReservedBy == this);
                sourceItems[i].ReservedBy = null;
                sourceItems[i] = null;
            }

            switch (status)
            {
                case JobStatus.Done:
                    trace.TraceInformation("build job done");

                    if (this.CurrentBuildOrder.IsRepeat == false)
                        RemoveBuildOrder(this.CurrentBuildOrder);
                    else
                        MoveToNextBuildOrder();

                    break;

                case JobStatus.Abort:
                    trace.TraceError("Build item aborted");

                    MoveToNextBuildOrder();

                    break;

                case JobStatus.Fail:
                    trace.TraceError("Build item failed");

                    RemoveBuildOrder(this.CurrentBuildOrder);

                    break;

                default:
                    throw new Exception();
            }
        }