public async Task <IActionResult> Permissions([FromRoute] int id, [FromServices] ResearchPermissionsService permissions)
        {
            var research = await _db.GetResearchAsync(id);

            var personId = Int32.Parse(User?.Claims.FirstOrDefault(x => x.Type == ClaimTypes.PrimarySid)?.Value);

            return(Ok(permissions.Get(research, personId)));
        }
        public async Task <IActionResult> Edit([FromRoute] int id, [FromServices] ResearchPermissionsService permissionsService)
        {
            var item = await _db.GetResearchAsync(id);

            if (item == null)
            {
                return(NotFound(new ApiError("404", "Not Found", $"Исследование #{id} не найдено")));
            }

            var personId    = Int32.Parse(User?.Claims.FirstOrDefault(x => x.Type == ClaimTypes.PrimarySid)?.Value);
            var permissions = permissionsService.Get(item, personId);

            if (!permissions.CanRead)
            {
                return(Forbid());
            }

            var model = new ResearchForm
            {
                Id       = item.Id,
                Research = item,
                Init     = new ResearchInitForm
                {
                    Name        = item.Name,
                    Description = item.Description,
                    AlgorithmId = item.AlgorithmId,
                    DataSetId   = item.DataSetId,
                    CreatorId   = item.CreatorId,
                    ExecutorId  = item.ExecutorId,
                },
                Calculated = item.AccuracyRates != null && item.EfficiencyRates != null ?
                             new ResearchCalculatedForm
                {
                    AccuracyRates   = item.AccuracyRates,
                    EfficiencyRates = item.EfficiencyRates
                } : null,
                Algorithms  = await _db.GetAlgorithmsListItemsAsync(),
                DataSets    = await _db.GetDataSetsListItemsAsync(),
                Executors   = await _db.GetPersonsListItemsByRoleAsync("User"),
                Permissions = permissions
            };

            return(Ok(model));
        }