Example #1
0
        private static void RunScheduler()
        {
            BackgroundWorker worker = new BackgroundWorker();

            worker.DoWork             += (sender, eventArgs) => ThreadTaskRunner.ProcessTasks();
            worker.RunWorkerCompleted += (sender, eventArgs) =>
            {
                WriteLine("---------------");
                WriteLine("Worker Complete");
                WorkerComplete = true;
            };
            worker.RunWorkerAsync();

            AspNetDeployEntities entities = new AspNetDeployEntities();

            while (true)
            {
                WriteLine(DateTime.Now.ToString());
                List <SourceControlVersion> sourceControls  = entities.SourceControlVersion.Include("SourceControl").ToList();
                List <BundleVersion>        bundleVersions  = entities.BundleVersion.Include("Bundle").ToList();
                List <ProjectVersion>       projectVersions = entities.ProjectVersion.Include("Project").ToList();
                List <Machine> machines = entities.Machine.ToList();

                foreach (SourceControlVersion sourceControlVersion in sourceControls)
                {
                    WriteLine(sourceControlVersion.Id + " - " + sourceControlVersion.SourceControl.Name + " / " + sourceControlVersion.Name + " - " + TaskRunnerContext.GetSourceControlVersionState(sourceControlVersion.Id));
                }

                WriteLine("");

                foreach (BundleVersion bundleVersion in bundleVersions)
                {
                    WriteLine(bundleVersion.Id + " - " + bundleVersion.Bundle.Name + " / " + bundleVersion.Name + " - " + TaskRunnerContext.GetBundleVersionState(bundleVersion.Id));
                }

                WriteLine("");

                foreach (ProjectVersion projectVersion in projectVersions.Where(p => TaskRunnerContext.GetProjectVersionState(p.Id) != ProjectState.Idle))
                {
                    WriteLine(
                        projectVersion.SourceControlVersion.SourceControl.Name + "/ " +
                        projectVersion.SourceControlVersion.Name + "/ " +
                        projectVersion.Id + " - " + projectVersion.Project.Name + " - " + TaskRunnerContext.GetProjectVersionState(projectVersion.Id));
                }

                WriteLine("");

                foreach (Machine machine in machines)
                {
                    WriteLine(
                        machine.Name + " - " + TaskRunnerContext.GetMachineState(machine.Id));
                }

                WriteLine("");

                /*if (sourceControls.All(scv => TaskRunnerContext.GetSourceControlVersionState(scv.Id) == SourceControlState.Idle) &&
                 *  bundleVersions.All(bv => TaskRunnerContext.GetBundleVersionState(bv.Id) == BundleState.Idle))
                 * {
                 *  break;
                 * }*/

                if (WorkerComplete)
                {
                    break;
                }

                Thread.Sleep(200);

                Console.SetCursorPosition(0, 0);
            }
        }
 public TaskConfigRespository(TaskRunnerConfig runnerConfig)
 {
     Context = new TaskRunnerContext(runnerConfig.TaskConfigDbConString);
 }