aboutsummaryrefslogtreecommitdiff
path: root/backend/api
diff options
context:
space:
mode:
authorTAMARA JERINIC <tamara.jerinic@gmail.com>2022-05-10 00:45:57 +0200
committerTAMARA JERINIC <tamara.jerinic@gmail.com>2022-05-10 00:45:57 +0200
commit0bef6c9f37cf6021cd4ebf026fa5e84aef2c71a3 (patch)
tree03ea7afd32641aa11800230f53a265393cb621c9 /backend/api
parentcccd25d73f4b67db8c0db940d57eb5902544db24 (diff)
parent9e4ad11dcc87bd1d3fbed5e16f9d9ad776149e64 (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.cs3
-rw-r--r--backend/api/api/Controllers/PredictorController.cs3
-rw-r--r--backend/api/api/Services/ChatHub.cs39
-rw-r--r--backend/api/api/Services/MlConnectionService.cs5
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;
}