public HttpResponseMessage HandleStepProbe([FromBody] StepProbeDto probeDto) { return(Request.ExecuteProtectedAndWrapResult <StepProbeDto, StepProbeResultModel>( dto => { CheckUserAgent(Request); return BuildService.HandleStepProbe(dto); }, ModelState, probeDto )); }
public StepProbeResultModel HandleStepProbe(StepProbeDto buildActionDto) { BuildSessionManager buildSession = GetBuildSessionByMac(buildActionDto.Mac); if (buildSession == null) { throw new NotFoundException("build session"); } StepProbeResultModel result = buildSession.HandleConnectionProbe(buildActionDto); if (result.Status == ProbeStatus.FINISHED) { lock (buildSession) { bool buildSessionAlive = BuildSessions.ContainsKey(buildSession.BuildSession.BuildSessionToken); if (!buildSessionAlive) { return(result); } RemoveSessionByUserId(buildSession.UserId); ConcretePartRepo.MarkInUse(buildSession.UsedPartIds); } } return(result); }