diff options
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;          }  | 
