Free cookie consent management tool by TermsFeed Policy Generator

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

Last change on this file since 13696 was 13696, checked in by jlodewyc, 8 years ago

#2582 Recursive views for Experiments and batch runs. Distribute child tasks start

File size: 2.3 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            FileOpeningService.Instance.Job.Job.Name = name;
24        }
25        public void ToggleChild(int[][] arr)
26        {
27            Job = FileOpeningService.Instance.Job;
28            HiveTask current = Job.HiveTasks.ToList()[0];
29            //  IOptimizer current = Job.HiveTasks.ToArray() ;
30            for (var i = 0; i < arr.Length; i++)
31            {
32
33               
34                if(i == arr.Length - 1)
35                {
36                    current.ChildHiveTasks[arr[i][1]].ItemTask.ComputeInParallel = !current.ChildHiveTasks[arr[i][1]].ItemTask.ComputeInParallel;
37
38
39                }
40                else
41                    current = current.ChildHiveTasks[arr[i][0]];
42            }
43        }
44        public void runHub(object sender, EventArgs e)
45        {
46            int value = 0;
47
48            switch (Job.Progress.Status)
49            {
50                case "Connecting to server...":
51                    value = 0;
52                    break;
53                case "Uploading Job...":
54                    value = 10;
55                    break;
56                case "Uploading plugins...":
57                    value = 30;
58                    break;
59                case "Uploading tasks...":
60                    value = 50;
61                    break;
62                case "Upload finished":
63                    value = 100;
64                    break;
65                default:
66                    value = (int)(50 + (40 * Job.Progress.ProgressValue));//steps
67                    break;
68
69            }
70
71            Clients.All.processMessage(Job.Progress.Status, value);
72
73        }
74
75    }
76}
Note: See TracBrowser for help on using the repository browser.