public async Task <MissionDto> CreateAsync(MissionDto dto) { await _unitOfWork.Missions.GuardForValidMission(dto); var mission = new Mission(dto.AgentId, dto.RemainingTime, dto.StationOneId, dto.StationTwoId , dto.Description); await _unitOfWork.CompleteAsync(ctx => ctx.Missions.AddAsync(mission)); dto.Id = mission.Id; var command = await _commandFactory.CreateNewMissionCommand(dto.Id); await _commander.SendAsync(command); return(dto); }