Esempio n. 1
0
        public async Task <OperationDataResult <List <FolderDtoModel> > > Index()
        {
            try
            {
                var core = await _coreHelper.GetCore();

                await using var dbContext = core.DbContextHelper.GetDbContext();
                var language = await _userService.GetCurrentUserLanguage();

                var folderQuery = dbContext.Folders
                                  .Where(x => x.WorkflowState != Constants.WorkflowStates.Removed)
                                  .Where(x => x.FolderTranslations.Any(y =>
                                                                       y.LanguageId == language.Id && !string.IsNullOrEmpty(y.Name)));
                var folders = await AddSelectToQueryForList(folderQuery, language.Id)
                              .OrderBy(x => x.Name)
                              .ToListAsync();

                var treeResult = new List <FolderDtoModel>();

                if (folders.Count > 0)
                {
                    treeResult = FoldersHelper.BuildTreeV2(folders);
                    //treeResult = folders.BuildTree().ToList();
                }
                return(new OperationDataResult <List <FolderDtoModel> >(true, treeResult));
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);
                return(new OperationDataResult <List <FolderDtoModel> >(
                           false,
                           _localizationService.GetString("ErrorWhileObtainingFoldersInfo")));
            }
        }