/// <summary>Вызов процедуры удаления группы разъёмов</summary> /// <param name="request">Запрос</param> /// <param name="context">Контекст</param> /// <returns>Завершённая задача после того, как были написаны заголовки ответов</returns> public override Task <Empty> DeleteSocketGroup(SocketGroupIdentity request, ServerCallContext context) { DebugWrite($"RpcCall 'DeleteSocketGroup': '{request}' from {context.Peer}"); _groupService.DeleteSocketGroup(request.GroupName); return(Task.FromResult(new Empty())); }
public override async Task <Empty> DeleteSocketGroup(SocketGroupIdentity request, ServerCallContext context) { DebugWrite($"RpcCall 'DeleteSocketGroup': '{request}' from {context.Peer}"); if (!_socketGroupCache.EntityExists(request.GroupName)) { throw new RpcException(new Status(StatusCode.NotFound, $"SocketGroup {request.GroupName} not found")); } await _client.DeleteSocketGroupAsync(new SocketGroupIdentity { GroupName = request.GroupName }); _socketGroupCache.Remove(request.GroupName); return(new Empty()); }
public override async Task GetSocketsInGroup(SocketGroupIdentity request, IServerStreamWriter <CustomSocket> responseStream, ServerCallContext context) { DebugWrite($"RpcCall 'GetSocketsInGroup': '{request}' from {context.Peer}"); if (!_socketGroupCache.EntityExists(request.GroupName)) { throw new RpcException(new Status(StatusCode.NotFound, $"SocketGroup {request.GroupName} not found")); } var socketGroup = _socketGroupCache.Get(request.GroupName); foreach (var socketName in socketGroup.SocketNames) { await responseStream.WriteAsync(_socketCache.Get(socketName)); } }
private async Task RemoveGroup(string groupName) { var groupIdentity = new SocketGroupIdentity { GroupName = groupName }; try { await Client.DeleteSocketGroupAsync(groupIdentity); Console.WriteLine($"Группа: {groupName} была успешно удалена."); } catch (Exception e) { WritePaddedTop(e.Message); } }
/// <summary>Вызов процедуры создания группы разъёмов</summary> /// <param name="request">Запрос</param> /// <param name="context">Контекст</param> /// <returns>Завершённая задача после того, как были написаны заголовки ответов</returns> public override Task <SocketGroup> AddSocketGroup(SocketGroupIdentity request, ServerCallContext context) { DebugWrite($"RpcCall 'AddSocketGroup': '{request}' from {context.Peer}"); var group = _groupService.GetSocketGroup(request.GroupName); if (group != null) { throw new RpcException( new Status(StatusCode.AlreadyExists, $"SocketGroup {request.GroupName} already exists") ); } return(Task.FromResult(_groupService.CreateSocketGroup( new SocketGroup { GroupName = request.GroupName }))); }
public override async Task <SocketGroup> AddSocketGroup(SocketGroupIdentity request, ServerCallContext context) { DebugWrite($"RpcCall 'AddSocketGroup': '{request}' from {context.Peer}"); if (_socketGroupCache.EntityExists(request.GroupName)) { throw new RpcException( new Status(StatusCode.AlreadyExists, $"SocketGroup {request.GroupName} already exists") ); } var socketGroup = await _client.AddSocketGroupAsync(new SocketGroupIdentity { GroupName = request.GroupName }); _socketGroupCache.Add(socketGroup); return(socketGroup); }
private async Task GetSocketsByGroupName(string groupName) { var groupIdentity = new SocketGroupIdentity { GroupName = groupName }; try { var socketsInGroup = await Client.GetSocketsInGroup(groupIdentity).ResponseStream.ToListAsync(); WritePaddedTop($"Разъемы принадлежащие группе {groupName}"); var socketsNamesResultString = string.Empty; foreach (var socket in socketsInGroup) { socketsNamesResultString += $"{socket.SocketName}; "; } Console.WriteLine(socketsNamesResultString); } catch (Exception e) { WritePaddedTop(e.Message); } }