Пример #1
0
        async public Task <bool> UpdateAppState(string selectedFolderId = null)
        {
            var authState = await _authenticationStateProvider.GetAuthenticationStateAsync();

            if (authState.User.Identity.IsAuthenticated)
            {
                var userFolders = await _api.GetFoldersByAuthorizedUser();

                if (userFolders.Count > 0)
                {
                    AllowedFolders = userFolders.Select(o => new AllowedFolder()
                    {
                        Name = o.Name, Id = o.Id, IsAdministrator = o.IsAdministrator
                    }).ToList();

                    if (selectedFolderId == null)
                    {
                        selectedFolderId = await _localStorage.GetItemAsync <string>("folderId");

                        if (selectedFolderId == null && AllowedFolders.Any())
                        {
                            selectedFolderId = AllowedFolders.FirstOrDefault().Id;
                        }
                    }

                    if (selectedFolderId != null)
                    {
                        var selectedFolder = userFolders.FirstOrDefault(g => g.Id == selectedFolderId);
                        if (selectedFolder != null)
                        {
                            CurrentFolderName            = selectedFolder.Name;
                            CurrentFolderId              = selectedFolder.Id;
                            CurrentFolderIsAdministrator = selectedFolder.IsAdministrator;

                            var folderTypes = await _api.GetFolderTypeAsMenuOptionList(selectedFolder.Id);

                            DataTypes = folderTypes.Select(o => new FolderTypeNav()
                            {
                                Text = o.Name, Data = o.Id
                            }).ToList();

                            await _localStorage.SetItemAsync("folderId", selectedFolderId);
                        }
                    }
                }
                else
                {
                    AllowedFolders               = new List <AllowedFolder>();
                    CurrentFolderId              = default(string);
                    CurrentFolderName            = default(string);
                    CurrentFolderIsAdministrator = false;
                    DataTypes = new List <FolderTypeNav>();
                }

                return(true);
            }
            return(false);
        }
Пример #2
0
    /// <summary>
    /// Determines if specified folder under root is allowed or not.
    /// </summary>
    /// <param name="folderName">Path to folder</param>
    /// <returns>True if folder is allowed</returns>
    private bool IsAllowed(string folderName)
    {
        if (String.IsNullOrEmpty(AllowedFolders) || (folderName.ToLowerCSafe() == FullStartingPath.ToLowerCSafe()))
        {
            return(true);
        }

        foreach (string folder in AllowedFolders.Split(';'))
        {
            if (folderName.StartsWithCSafe(DirectoryHelper.CombinePath(FullStartingPath.ToLowerCSafe(), folder)))
            {
                return(true);
            }
        }

        return(false);
    }