private void Receives()
        {
            Receive <AttemptJobStart>(attempt =>
            {
                CommandRouter.Ask <Routees>(new GetRoutees()).ContinueWith(tr =>
                {
                    var route = new StartJobRoutes(tr.Result.Members.Count());
                    return(route);
                }, TaskContinuationOptions.AttachedToParent & TaskContinuationOptions.ExecuteSynchronously).PipeTo(Self, Sender);
            });

            Receive <StartJobRoutes>(ic => ic.NodeCount == 0, ic =>
            {
                Sender.Tell(ic);
            });

            Receive <StartJobRoutes>(ic =>
            {
                Sender.Tell(ic);


                // TODO:  Need to create a task to get the markts and to run them all.
                JobInfo job  = new JobInfo("RunMe");
                var startJob = new StartJob(new Job(job), Sender);

                CommandRouter.Tell(startJob);

                JobInfo job2  = new JobInfo("MyPetMonkey1");
                var startJob2 = new StartJob(new Job(job2), Sender);

                CommandRouter.Tell(startJob2);

                JobInfo job3  = new JobInfo("AkkaNet");
                var startJob3 = new StartJob(new Job(job3), Sender);

                CommandRouter.Tell(startJob3);
            });

            Receive <AttemptSubscription>(attempt =>
            {
                CommandRouter.Tell(new SubscribeToAllJobs(Sender), Self);
                CommandRouter.Ask <Routees>(new GetRoutees()).ContinueWith(tr =>
                {
                    var message = string.Empty;

                    if (!tr.Result.Members.Any())
                    {
                        message = "Could not find item tasker.  Is the Tasker service running?";
                    }
                    else
                    {
                        message = "Item tasker is running.";
                    }

                    return(new SignalRItemStatusActor.ClusterRoutes(message));
                }, TaskContinuationOptions.AttachedToParent & TaskContinuationOptions.ExecuteSynchronously).PipeTo(Sender);
                Sender.Tell(new SubscribeToAllJobs(Sender), Self);
            });

            Receive <AttemptUnSubscribe>(attempt =>
            {
                CommandRouter.Tell(new UnSubscribeToAllJobs(Sender), Self);
                CommandRouter.Ask <Routees>(new GetRoutees()).ContinueWith(tr =>
                {
                    var grrr =
                        new SignalRItemStatusActor.ClusterRoutes(string.Format("{0} has {1} routees: {2}", CommandRouter,
                                                                               tr.Result.Members.Count(),
                                                                               string.Join(",",
                                                                                           tr.Result.Members.Select(
                                                                                               y => y.ToString()))));

                    return(grrr);
                }, TaskContinuationOptions.AttachedToParent & TaskContinuationOptions.ExecuteSynchronously).PipeTo(Sender);
                Sender.Tell(new UnSubscribeToAllJobs(Sender), Self);
            });
        }
        private void Receives()
        {
            Receive<AttemptJobStart>(attempt =>
            {
                
                CommandRouter.Ask<Routees>(new GetRoutees()).ContinueWith(tr =>
                {
                    var route = new StartJobRoutes(tr.Result.Members.Count());
                    return route;

                }, TaskContinuationOptions.AttachedToParent & TaskContinuationOptions.ExecuteSynchronously).PipeTo(Self, Sender);
            });

            Receive<StartJobRoutes>(ic => ic.NodeCount == 0, ic =>
            {
                Sender.Tell(ic);
            });

            Receive<StartJobRoutes>(ic =>
            {
                Sender.Tell(ic);
                

                // TODO:  Need to create a task to get the markts and to run them all.
                JobInfo job = new JobInfo("RunMe");
                var startJob = new StartJob(new Job(job), Sender);

                CommandRouter.Tell(startJob);

                JobInfo job2 = new JobInfo("MyPetMonkey1");
                var startJob2 = new StartJob(new Job(job2), Sender);

                CommandRouter.Tell(startJob2);

                JobInfo job3 = new JobInfo("AkkaNet");
                var startJob3 = new StartJob(new Job(job3), Sender);

                CommandRouter.Tell(startJob3);
            });

            Receive<AttemptSubscription>(attempt =>
            {
                CommandRouter.Tell(new SubscribeToAllJobs(Sender), Self);
                CommandRouter.Ask<Routees>(new GetRoutees()).ContinueWith(tr =>
                {
                    var message = string.Empty;

                    if (!tr.Result.Members.Any())
                    {
                        message = "Could not find item tasker.  Is the Tasker service running?";
                    }
                    else
                    {
                        message = "Item tasker is running.";
                    }
                    
                    return new SignalRItemStatusActor.ClusterRoutes(message);
                }, TaskContinuationOptions.AttachedToParent & TaskContinuationOptions.ExecuteSynchronously).PipeTo(Sender);
                Sender.Tell(new SubscribeToAllJobs(Sender), Self);
            });

            Receive<AttemptUnSubscribe>(attempt =>
            {
                CommandRouter.Tell(new UnSubscribeToAllJobs(Sender), Self);
                CommandRouter.Ask<Routees>(new GetRoutees()).ContinueWith(tr =>
                {
                    var grrr =
                        new SignalRItemStatusActor.ClusterRoutes(string.Format("{0} has {1} routees: {2}", CommandRouter,
                            tr.Result.Members.Count(),
                            string.Join(",",
                                tr.Result.Members.Select(
                                    y => y.ToString()))));

                    return grrr;
                }, TaskContinuationOptions.AttachedToParent & TaskContinuationOptions.ExecuteSynchronously).PipeTo(Sender);
                Sender.Tell(new UnSubscribeToAllJobs(Sender), Self);
            });
        }