예제 #1
0
        protected override async Task OnAfterRenderAsync(bool firstRender)
        {
            if (_loaded)
            {
                return;
            }

            _loaded = true;

            _creating = NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant().
                        StartsWith("admin/licenses/create", StringComparison.InvariantCulture);

            if (Id <= 0 &&
                !_creating)
            {
                return;
            }

            _model = _creating ? new Database.Models.License() : await Service.GetAsync(Id);

            _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();

            _editing = _creating || NavigationManager.ToBaseRelativePath(NavigationManager.Uri).ToLowerInvariant().
                       StartsWith("admin/licenses/edit/",
                                  StringComparison.InvariantCulture);

            if (_editing)
            {
                SetCheckboxes();
            }

            StateHasChanged();
        }
예제 #2
0
        async void OnSaveClicked()
        {
            if (_unknownText)
            {
                _model.Text = null;
            }
            else if (string.IsNullOrWhiteSpace(_model.Text))
            {
                return;
            }

            if (string.IsNullOrWhiteSpace(_model.Text) ||
                _model.Name?.Length > 255)
            {
                return;
            }

            if (string.IsNullOrWhiteSpace(_model.SPDX) ||
                _model.SPDX?.Length > 255)
            {
                return;
            }

            if (_unknownLink)
            {
                _model.Link = null;
            }
            else if (string.IsNullOrWhiteSpace(_model.Link) ||
                     _model.Link?.Length > 512)
            {
                return;
            }

            if (_creating)
            {
                Id = await Service.CreateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id);
            }
            else
            {
                await Service.UpdateAsync(_model, (await UserManager.GetUserAsync(_authState.User)).Id);
            }

            _editing  = false;
            _creating = false;
            _model    = await Service.GetAsync(Id);

            SetCheckboxes();
            StateHasChanged();
        }
예제 #3
0
        async void OnCancelClicked()
        {
            _editing = false;

            if (_creating)
            {
                NavigationManager.ToBaseRelativePath("admin/licenses");

                return;
            }

            _model = await Service.GetAsync(Id);

            SetCheckboxes();
            StateHasChanged();
        }