namespace PARR.API.Controllers.V1
{
    //[Authorize(Roles = ParrRoles.Administrator.Role)]
    //public class GeneratorTemplateController : BaseApiController
    //{
    //    private readonly IValidator<GeneratorTemplateRequest> validator;
    //    private readonly IRabbitService mqService;
    //    private readonly IUriService uriService;
    //    private readonly MqSettings mqSettings;
    //    private readonly IClientService clientService;

    //    public GeneratorTemplateController(
    //        IValidator<GeneratorTemplateRequest> validator,
    //        IRabbitService mqService,
    //        IUriService uriService,
    //        MqSettings mqSettings,
    //        IClientService clientService
    //        )
    //    {
    //        this.validator = validator;
    //        this.mqService = mqService;
    //        this.uriService = uriService;
    //        this.mqSettings = mqSettings;
    //        this.clientService = clientService;
    //    }

    //    /// !!!!!!!!!! Это старый контроллер, удалить !!!!!!!!!!


    //    /// <summary>
    //    /// Запрос на генерацию шаблонов
    //    /// </summary>
    //    /// <returns></returns>
    //    [HttpPost(ApiRoutes.GeneratorTemplate.Create)]
    //    public async Task<IActionResult> Create([FromBody] GeneratorTemplateRequest request)
    //    {
    //        var resultValidate = await validator.ValidateAsync(request);
    //        if (!resultValidate.IsValid)
    //            return BadRequest(new Response(resultValidate.Errors));

    //        var result = true;

    //        request.Ek.ForEach(ek =>
    //        {
    //            //todo: проверить в ForEach(async status - отрабатывает ли нормально async, возможно надо переделать в обычный foreach
    //            request.Status.ForEach(async status =>
    //            {
    //                var obj = new GeneratorTemplateMq
    //                {
    //                    Action = request.Action,
    //                    ApplicationId = request.ApplicationId,
    //                    Ek = ek,
    //                    WorkId = request.WorkId,
    //                    StatusEk = status,
    //                    IsActiveTemplate = request.IsActiveTemplate,
    //                    IsActiveSchedule = request.IsActiveSchedule,
    //                    HistoryInitiator = new HistoryInitiator { InitiatorIp = clientService.GetClientIp()?.ToString(), InitiatorParrComponentId = ParrComponentsEnum.Api }
    //                };

    //                //var msg = JsonSerializer.Serialize(obj);

    //                //var _result = await mqService.SendAsync(mqSettings.GenerateTemplates, new[] { msg });
    //                var _result = await mqService.SendAsync(mqSettings.GenerateTemplates, new List<object> { obj });

    //                if (_result.IsSuccess == false)
    //                    result = false;

    //            });
    //        });

    //        //var obj = new GeneratorTemplateMq
    //        //{
    //        //    Action = request.Action,
    //        //    ApplicationId = request.ApplicationId,
    //        //    Ek = request.Ek,
    //        //    WorkId = request.WorkId,
    //        //    StatusEk = request.Status,
    //        //    IsActiveTemplate = request.IsActiveTemplate,
    //        //    IsActiveSchedule = request.IsActiveSchedule
    //        //};

    //        //var msg = JsonSerializer.Serialize(obj);

    //        //var result = mqService.Send(mqSettings.GenerateTemplates, new[] { msg });

    //        //if (!result.IsSuccess)
    //        if (!result)
    //            return BadRequest(new Response(false, new List<ErrorModel> { new ErrorModel { Message = $"Ошибка при отправке данных." } }));

    //        var createdUri = uriService.GetAllUri(ApiRoutes.Template.GetAll);

    //        return Created(createdUri, new Response<string?>(null, true, new List<ErrorModel>(), "Отправлен запрос на генерацию шаблонов."));
    //    }
    //}
}
