public HttpResponseMessage HandleStepProbe([FromBody] StepProbeDto probeDto)
 {
     return(Request.ExecuteProtectedAndWrapResult <StepProbeDto, StepProbeResultModel>(
                dto => { CheckUserAgent(Request); return BuildService.HandleStepProbe(dto); },
                ModelState, probeDto
                ));
 }
Esempio n. 2
0
        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);
        }