diff options
author | TAMARA JERINIC <tamara.jerinic@gmail.com> | 2022-05-10 00:45:57 +0200 |
---|---|---|
committer | TAMARA JERINIC <tamara.jerinic@gmail.com> | 2022-05-10 00:45:57 +0200 |
commit | 0bef6c9f37cf6021cd4ebf026fa5e84aef2c71a3 (patch) | |
tree | 03ea7afd32641aa11800230f53a265393cb621c9 /backend/api | |
parent | cccd25d73f4b67db8c0db940d57eb5902544db24 (diff) | |
parent | 9e4ad11dcc87bd1d3fbed5e16f9d9ad776149e64 (diff) |
Merge branch 'redesign' of http://gitlab.pmf.kg.ac.rs/igrannonica/neuronstellar into redesign
Diffstat (limited to 'backend/api')
-rw-r--r-- | backend/api/api/Controllers/ModelController.cs | 3 | ||||
-rw-r--r-- | backend/api/api/Controllers/PredictorController.cs | 3 | ||||
-rw-r--r-- | backend/api/api/Services/ChatHub.cs | 39 | ||||
-rw-r--r-- | backend/api/api/Services/MlConnectionService.cs | 5 |
4 files changed, 25 insertions, 25 deletions
diff --git a/backend/api/api/Controllers/ModelController.cs b/backend/api/api/Controllers/ModelController.cs index a0e51e1f..3145a080 100644 --- a/backend/api/api/Controllers/ModelController.cs +++ b/backend/api/api/Controllers/ModelController.cs @@ -86,7 +86,8 @@ namespace api.Controllers var user = _userService.GetUserById(model.uploaderId); if (ChatHub.CheckUser(user._id)) - await _ichat.Clients.Client(ChatHub.Users[user._id]).SendAsync("NotifyEpoch",model.name,info.ModelId,info.Stat,model.epochs,info.EpochNum); + foreach (var connection in ChatHub.getAllConnectionsOfUser(user._id)) + await _ichat.Clients.Client(connection).SendAsync("NotifyEpoch",model.name,info.ModelId,info.Stat,model.epochs,info.EpochNum); return Ok(); } diff --git a/backend/api/api/Controllers/PredictorController.cs b/backend/api/api/Controllers/PredictorController.cs index 3646187e..3a9e6649 100644 --- a/backend/api/api/Controllers/PredictorController.cs +++ b/backend/api/api/Controllers/PredictorController.cs @@ -162,7 +162,8 @@ namespace api.Controllers return BadRequest("Model not found or user doesnt exist"); _predictorService.Create(predictor); if (ChatHub.CheckUser(user._id)) - await _ichat.Clients.Client(ChatHub.Users[user._id]).SendAsync("NotifyPredictor", predictor._id,model.name); + foreach(var connection in ChatHub.getAllConnectionsOfUser(user._id)) + await _ichat.Clients.Client(connection).SendAsync("NotifyPredictor", predictor._id,model.name); return CreatedAtAction(nameof(Get), new { id = predictor._id }, predictor); } diff --git a/backend/api/api/Services/ChatHub.cs b/backend/api/api/Services/ChatHub.cs index 47a1f099..790b4de6 100644 --- a/backend/api/api/Services/ChatHub.cs +++ b/backend/api/api/Services/ChatHub.cs @@ -23,10 +23,7 @@ namespace api.Services if (token == null) return; string id=_tokenService.TokenToId(token); - if (!Users.ContainsKey(id)) - Users.Add(id, Context.ConnectionId); - else - Users[id] = Context.ConnectionId; + Users.Add(Context.ConnectionId,id); //await SendDirect(id, "poruka"); //await Send(Context.ConnectionId); await base.OnConnectedAsync(); @@ -34,27 +31,27 @@ namespace api.Services } public override async Task OnDisconnectedAsync(Exception? exception) { - var user = Users.Values.Contains(Context.ConnectionId); - if (user==false) - return; - Users.Remove(Users.FirstOrDefault(u => u.Value == Context.ConnectionId).Key); + Users.Remove(Context.ConnectionId); } - public async Task SendDirect(string id,string message) - { - if (Users[id]==null) - return; - - await Clients.Client(Users[id]).SendAsync("Notify",message); - } - public async Task Send(string message) + public static bool CheckUser(string id) { - await Clients.All.SendAsync("Notify",message); + var users=Users.Values; + foreach (var user in users) + { + if(user==id) + return true; + } + return false; } - public static bool CheckUser(string id) + public static List<string> getAllConnectionsOfUser(string id) { - if (Users[id] == null) - return false; - return true; + List<string> keys=new List<string>(); + foreach (var user in Users) + { + if(user.Value==id) + keys.Add(user.Key); + } + return keys; } } diff --git a/backend/api/api/Services/MlConnectionService.cs b/backend/api/api/Services/MlConnectionService.cs index 17c0f8b8..b6d422ad 100644 --- a/backend/api/api/Services/MlConnectionService.cs +++ b/backend/api/api/Services/MlConnectionService.cs @@ -59,8 +59,9 @@ namespace api.Services Dataset newDataset = JsonConvert.DeserializeObject<Dataset>(result.Content); newDataset.isPreProcess = true; _datasetService.Update(newDataset); - if(ChatHub.CheckUser(id)) - await _ichat.Clients.Client(ChatHub.Users[id]).SendAsync("NotifyDataset",newDataset.name,newDataset._id); + if (ChatHub.CheckUser(id)) + foreach (var connection in ChatHub.getAllConnectionsOfUser(id)) + await _ichat.Clients.Client(connection).SendAsync("NotifyDataset",newDataset.name,newDataset._id); return; } |