public async Task <IActionResult> Get(
            [FromQuery] DocumentGroupTypeEnum documentGroupType, [FromQuery] DocumentStatusEnum documentStatus,
            [FromHeader] Guid personUniqueId,
            [FromQuery] DataSourceLoadOptionsImpl options,
            [FromServices] DocumentsManager manager)
        {
            using (var repository = new Repository <Document>(_provider)) {
                var query = await manager.GetMyDocumentsAsync(User.Identity.Name, personUniqueId, documentGroupType, documentStatus, repository);

                return(this.JsonEx(DataSourceLoader.Load(query, options)));
            }
        }
        public IActionResult Get([FromHeader] Guid personUniqueId, DocumentGroupTypeEnum documentGroupType)
        {
            using (var userRepository = new Repository <User>(_provider))
            {
                var contragentId = userRepository.Get(x => x.UserName == User.Identity.Name).SelectMany(x => x.PersonProfiles)
                                   .Where(x => x.UniqueId == personUniqueId).Select(x => (long?)x.Contragent.Id).FirstOrDefault();
                if (!contragentId.HasValue)
                {
                    return(Json(ApiResponse.Failed(ApiErrorCode.ValidationError, $"Данные недоступны для текущего профиля")));
                }

                var documentRepository = new Repository <DocumentsSummary>(userRepository);
                var documentSummary    = documentRepository.Get(x => x.Contragent.Id == contragentId && x.DocumentGroupType == documentGroupType).GroupBy(x => new { x.Status }).Select(x => new
                {
                    DocumentStatus    = x.Key.Status,
                    NewDocumentsCount = x.Sum(s => s.NewDocumentsCount),
                    DocumentsCount    = x.Sum(s => s.DocumentsCount)
                }).ToArray();

                var documentStatusRepository = new Repository <RefDocumentStatus>(documentRepository);
                var response = documentStatusRepository.Get(x => x.DocumentGroupType == documentGroupType).Select(x => new
                {
                    Status = x.DocumentStatus
                }).ToArray().Select(x => new NavigatorResponse
                {
                    Status = x.Status.ToString().ToLower()
                }).ToArray();

                foreach (var data in documentSummary)
                {
                    var responseItem = response.First(x => x.Status == data.DocumentStatus.ToString().ToLower());
                    responseItem.Status            = responseItem.Status.ToLower();
                    responseItem.NewDocumentsCount = data.NewDocumentsCount;
                    responseItem.DocumentsCount    = data.DocumentsCount;
                }

                return(Json(ApiResponse.Success(response)));
            }
        }