Beispiel #1
0
        public async Task <IActionResult> Post([FromForm] RequestModel requestModel)
        {
            logger.LogInformation($"Post action. Nick: {User.Identity.IsAuthenticated} !");
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Request request;

            try
            {
                logger.LogInformation("Create request.");
                int?userId = User.Identity.IsAuthenticated ? int.Parse(User.FindFirst("Id").Value) : new int?();
                request = await faceService.CreateRequestAsync(requestModel.RequestType, requestModel.FromImage, requestModel.ToImage, userId);

                logger.LogInformation("Create response.");
                Response response = await faceService.CreateResponseAsync(request);
            }
            catch (KeyNotFoundException ex)
            {
                ModelState.AddModelError("RequestType", ex.Message);
                return(NotFound(ModelState));
            }
            catch (NullReferenceException ex)
            {
                ModelState.AddModelError("ToImage", ex.Message);
                return(BadRequest(ModelState));
            }
            catch (InvalidDataException ex)
            {
                ModelState.AddModelError("Images", ex.Message);
                return(BadRequest(ModelState));
            }

            logger.LogInformation("Return response.");
            var responseModel = new { Id = request.RequestId };

            return(Ok(responseModel));
        }