Free cookie consent management tool by TermsFeed Policy Generator

source: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/ProgressHub.cs @ 13723

Last change on this file since 13723 was 13712, checked in by jlodewyc, 9 years ago

#2582 Distribution childs and priority done. Display current jobs and start graphs

File size: 4.6 KB
Line 
1using HeuristicLab.Clients.Hive.WebJobManager.Services;
2using HeuristicLab.Optimization;
3using Microsoft.AspNet.SignalR;
4using System;
5using System.Collections.Generic;
6using System.Linq;
7using System.Threading.Tasks;
8
9namespace HeuristicLab.Clients.Hive.WebJobManager
10{
11    public class ProgressHub : Hub
12    {
13        private RefreshableJob Job;
14        public void HandleMessage(string receivedString)
15        {
16
17            Clients.All.processMessage("Connection Established");
18            Job = FileOpeningService.Instance.Job;
19            Job.Progress.StatusChanged += runHub;
20        }
21        public void ChangeName(string name)
22        {
23            if (name != null)
24                FileOpeningService.Instance.Job.Job.Name = name;
25        }
26        public void ToggleChild(int[][] arr)
27        {
28            Job = FileOpeningService.Instance.Job;
29            HiveTask current = Job.HiveTasks.ToList()[0];
30            //  IOptimizer current = Job.HiveTasks.ToArray() ;
31            if (arr.Length == 0)
32            {
33                current.ItemTask.ComputeInParallel = !current.ItemTask.ComputeInParallel;
34               
35            }
36            else {
37                for (var i = 0; i < arr.Length; i++)
38                {
39
40
41                    if (i == arr.Length - 1)
42                    {
43                        if (current.ItemTask.Item is BatchRun)
44                        {
45                            current.ChildHiveTasks[arr[i][1]].ItemTask.ComputeInParallel = !current.ChildHiveTasks[arr[i][1]].ItemTask.ComputeInParallel;
46                        }
47                        else if (current.ItemTask.Item is Experiment)
48                        {
49                            current.ChildHiveTasks[arr[i][0]].ItemTask.ComputeInParallel = !current.ChildHiveTasks[arr[i][0]].ItemTask.ComputeInParallel;
50                        }
51
52                    }
53                    else {
54                        if (current.ItemTask.Item is BatchRun)
55                            current = current.ChildHiveTasks[arr[i][1]]; // select right batch
56                        else if (current.ItemTask.Item is Experiment)
57                            current = current.ChildHiveTasks[arr[i][0]]; // select right sub task from experiment
58                    }
59                }
60            }
61        }
62        public void ChangePriority(int[][] arr, int prior)
63        {
64            Job = FileOpeningService.Instance.Job;
65            HiveTask current = Job.HiveTasks.ToList()[0];
66            //  IOptimizer current = Job.HiveTasks.ToArray() ;
67            if (arr.Length == 0)
68            {
69                current.Task.Priority = prior;
70
71            }
72            else {
73                for (var i = 0; i < arr.Length; i++)
74                {
75
76
77                    if (i == arr.Length - 1)
78                    {
79                        if (current.ItemTask.Item is BatchRun)
80                        {
81                            current.ChildHiveTasks[arr[i][1]].Task.Priority = prior;
82                        }
83                        else if (current.ItemTask.Item is Experiment)
84                        {
85                            current.ChildHiveTasks[arr[i][0]].Task.Priority = prior;
86                        }
87
88                    }
89                    else {
90                        if (current.ItemTask.Item is BatchRun)
91                            current = current.ChildHiveTasks[arr[i][1]]; // select right batch
92                        else if (current.ItemTask.Item is Experiment)
93                            current = current.ChildHiveTasks[arr[i][0]]; // select right sub task from experiment
94                    }
95                }
96            }
97        }
98        public void runHub(object sender, EventArgs e)
99        {
100            int value = 0;
101
102            switch (Job.Progress.Status)
103            {
104                case "Connecting to server...":
105                    value = 0;
106                    break;
107                case "Uploading Job...":
108                    value = 10;
109                    break;
110                case "Uploading plugins...":
111                    value = 30;
112                    break;
113                case "Uploading tasks...":
114                    value = 50;
115                    break;
116                case "Upload finished":
117                    value = 100;
118                    break;
119                default:
120                    value = (int)(50 + (40 * Job.Progress.ProgressValue));//steps
121                    break;
122
123            }
124
125            Clients.All.processMessage(Job.Progress.Status, value);
126
127        }
128
129    }
130}
Note: See TracBrowser for help on using the repository browser.