diff --git a/AsbCloudWebApi/Controllers/BackgroundWorkController.cs b/AsbCloudWebApi/Controllers/BackgroundWorkController.cs index 65e7171b..a0bf6560 100644 --- a/AsbCloudWebApi/Controllers/BackgroundWorkController.cs +++ b/AsbCloudWebApi/Controllers/BackgroundWorkController.cs @@ -33,8 +33,11 @@ namespace AsbCloudWebApi.Controllers [HttpGet("Current")] public IActionResult GetCurrent() { - var result = (BackgroundWorkDto?)backgroundWorker.CurrentWork; - return Ok(result); + var work = backgroundWorker.CurrentWork; + if (work == null) + return NoContent(); + + return Ok(work); } [HttpGet("Failed")] diff --git a/AsbCloudWebApi/Controllers/Mock.cs b/AsbCloudWebApi/Controllers/Mock.cs new file mode 100644 index 00000000..910b1428 --- /dev/null +++ b/AsbCloudWebApi/Controllers/Mock.cs @@ -0,0 +1,42 @@ +using Microsoft.AspNetCore.Mvc; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; + +namespace AsbCloudWebApi.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class MockController : ControllerBase + { + /// + /// получить статистику + /// + [HttpGet("400")] + [ProducesResponseType(typeof(ValidationProblemDetails), (int)System.Net.HttpStatusCode.BadRequest)] + public IActionResult Get([FromQuery, Required]IDictionary args) + { + var errors = new Dictionary(); + + foreach (var arg in args) + { + var countOfErrors = ((arg.Key + arg.Value).Length % 3) + 1; + var errorsText = Enumerable.Range(0, countOfErrors) + .Select(i => $"{arg.Value} не соответствует критериям проверки № {i}"); + + errors.Add(arg.Key, errorsText.ToArray()); + } + + if (errors.Any()) + { + var problem = new ValidationProblemDetails(errors); + return BadRequest(problem); + } + else + { + var problem = new ValidationProblemDetails { Detail = "at least one argument must be provided" }; + return BadRequest(problem); + } + } + } +}