コード例 #1
0
        public static FinishResponse Finish(string token, Options options)
        {
            return(ExceptionHandler.Perform <FinishResponse, InscriptionFinishException>(() =>
            {
                var finishRequest = new FinishRequest(token);
                var response = RequestService.Perform <InscriptionFinishException>(finishRequest, options);

                return JsonConvert.DeserializeObject <FinishResponse>(response);
            }));
        }
コード例 #2
0
        public async Task <IActionResult> FinishSession([FromBody] FinishRequest request)
        {
            try
            {
                using (_logger.BeginScope(nameof(FinishSession)))
                {
                    if (request.SessionId == null)
                    {
                        _logger.LogError("Attempted to finish session with null sessionId");
                        return(BadRequest(new
                        {
                            message = "Error: Session ID is empty"
                        }));
                    }

                    var user = await _userManager.GetUserAsync(HttpContext.User);

                    var userId = await _userManager.GetUserIdAsync(user);

                    var session = _sessionRepository.GetLastSessionForUser(int.Parse(userId));

                    if (session.SessionID != request.SessionId)
                    {
                        _logger.LogCritical("User {0}: Obtained session ID is incorrect or malformed.", userId);
                        return(BadRequest(new
                        {
                            message = "Error: Authentification failure. Your session ID is incorrect of malformed."
                        }));
                    }

                    string errorMessage;
                    if (_sessionValidator.IsFinishedSession(session, out errorMessage))
                    {
                        _logger.LogWarning("{0} for user {1}", errorMessage, userId);
                        return(StatusCode(409, errorMessage));
                    }

                    _sessionTracker.CloseSession(session.SessionID);
                    return(Ok());
                }
            }
            catch (Exception e)
            {
                _logger.LogCritical(e.Message);
                _logger.LogTrace(e.StackTrace);
                return(BadRequest(new
                {
                    message = e.Message
                }));
            }
        }
コード例 #3
0
 public void Finish([FromBody] FinishRequest request)
 {
     Commands.Finish(request.ElementId);
 }
コード例 #4
0
ファイル: PipeViewModel.cs プロジェクト: sagidM/Kindergarten
 public void Finish()
 {
     FinishRequest?.Invoke();
 }