/// <summary> /// /// </summary> /// <typeparam name="TResponse"></typeparam> /// <param name="command"></param> /// <param name="cancellationToken">Propagates notification that operations should be canceled.</param> /// <returns></returns> public async Task <TResponse> Dispatch <TResponse>(ICommandRequest <TResponse> command, CancellationToken cancellationToken) { await _executeMiddlewaresService.ExecuteAsync(command, cancellationToken); var wrappedHandlers = GetWrappedHandlers(command); if (wrappedHandlers == null) { throw new CommandNotRegisteredError(command.ToString()); } return(await wrappedHandlers.Handle(command, _serviceProvider, cancellationToken)); }
/// <summary> /// /// </summary> /// <param name="command"></param> /// <param name="cancellationToken">Propagates notification that operations should be canceled.</param> /// <returns></returns> public async Task Dispatch(ICommandRequest command, CancellationToken cancellationToken = default) { await _executeMiddlewaresService.ExecuteAsync(command, cancellationToken); var wrappedHandlers = GetWrappedHandlers(command); if (wrappedHandlers == null) { throw new CommandNotRegisteredError(command.ToString()); } var tasks = wrappedHandlers.Select(handler => handler.Handle(command, _serviceProvider, cancellationToken)); await Task.WhenAll(tasks); }
/// <summary> /// Returns the result of the <see cref="ICommandRequest"/>.<see cref="object.ToString()"/> method. /// </summary> /// <param name="request">The <see cref="ICommandRequest"/> object to serialize.</param> /// <returns></returns> public string Serialize(ICommandRequest request) { return(request.ToString()); }
// ---------------------------------------------------------------- // THIS COMMAND LIST ALL THE AVAILABLE DRIVES IN THE MACHINE // ---------------------------------------------------------------- public ICommandResponse[] RunCommand(ICommandRequest request) { JLogger.LogInfo(this, "runCommand:{0}", request.ToString()); ICommandResponse[] cmdResp; var driveInfoList = new List <JDriveInfo>(); try { //foreach (var di in DriveInfo.GetDrives()) //{ // if (!di.IsReady) // { // continue; // } // //NO_REMOVABLE_DRIVES - DON'T RETURN REMOVABLE DRIVES // if (di.DriveType != DriveType.Fixed && request.GetParams().Contains("NO_REMOVABLE_DRIVES")) // { // continue; // } // //NO_EMPTY_DRIVES - DON'T RETURN EMPTY DRIVES // if (di.TotalSize == 0 && request.GetParams().Contains("NO_EMPTY_DRIVES")) // { // continue; // } // var data = new JDriveInfo // { // DEVICEID = di.Name, // FREESPACE = di.TotalFreeSpace.ToString(), // TOTALSIZE = di.TotalSize.ToString(), // USEDSPACE = (di.TotalSize - di.TotalFreeSpace).ToString() // }; // driveInfoList.Add(data); //} driveInfoList.AddRange(from di in DriveInfo.GetDrives() where di.IsReady where di.DriveType == DriveType.Fixed || !request.GetParams().Contains(NoRemovableDrives) where di.TotalSize != 0 || !request.GetParams().Contains(NoEmptyDrives) select new JDriveInfo { DEVICEID = di.Name, FREESPACE = di.TotalFreeSpace.ToString(), TOTALSIZE = di.TotalSize.ToString(), USEDSPACE = (di.TotalSize - di.TotalFreeSpace).ToString() }); var respData = JsonConvert.SerializeObject(driveInfoList.ToArray()); cmdResp = new ICommandResponse[] { new CommandResponse(CommandResponseCodes.OkCommandSuccess[0], respData) }; } catch (Exception ex) { cmdResp = new ICommandResponse[] { new CommandResponse(CommandResponseCodes.ErrorExceptionFound[0], CommandResponseCodes.ErrorExceptionFound[1] + ex.Message) }; } JLogger.LogInfo(this, "runCommand Response:{0}", cmdResp.ToString()); return(cmdResp); }