Exemplo n.º 1
0
 public void RequestFileCallback(FileContentResponse response)
 {
     // TODO: Probar a quitar source?
     if (_pendingTasks.TryRemove(response.RequestId, out var obj) &&
         obj is { } source)
     {
         source.SetResult(response);
     }
 }
Exemplo n.º 2
0
        public Task FileContentRequestCallback(FileContentResponse response)
        {
            try
            {
                Logger.LogDebug("Tratando callback {Callback} {@Response}",
                                nameof(FileContentRequestCallback), response);

                _fileContentRequestClient
                .RequestFileCallback(response);

                return(Task.CompletedTask);
            }
            catch (Exception ex)
            {
                Logger.LogError(ex,
                                "No fue posible tratar la callback {Callback} {@Response} ",
                                nameof(FileContentRequestCallback), response);

                throw;
            }
        }
        protected override async Task Handle(SendRequestedFileCommand request, CancellationToken cancellationToken)
        {
            try
            {
                var path = _logicPathRepository
                           .Get(request.FileId);

                var content = FileHelper
                              .GetFileContent(path);

                var response = new FileContentResponse(request.Id, content);

                await _classroomHubClient
                .SendAsync(methodName : request.TargetMethod, response);

                _logger.LogDebug("Enviado contenido archivo {Id}",
                                 request.FileId);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "No fue posible responder a la solicitud de contenido " +
                                 "de archivo {@Request} ", request);
            }
        }