public async Task <IActionResult> ProduceUnits([FromBody] UnitProductionRequest request) { var identityContext = new IdentityContext(HttpContext); var startTime = await _mediator.Send(new UnitProductionStart.Command(request, identityContext)); var jobId = _mediator.Schedule( $"{identityContext.UserId} creates {request.Amount} {request.NameOfUnitType}", new UnitProductionProcess.Command(request.CityIndex, request.NameOfUnitType, request.Amount, identityContext, startTime), startTime); await _mediator.Send(new AddJobIdToUnitQueue.Command(jobId, identityContext.UserId, request.NameOfUnitType, request.CityIndex, request.Amount)); return(Ok(jobId)); }
public record Command(UnitProductionRequest Request) : IRequest <Unit>;
public record Command(UnitProductionRequest Request, IIdentityContext IdentityContext) : IRequest <DateTime>;