async Task ConfirmDeleteCompanyByMachine()
        {
            if (_currentCompanyBySoftwareVersion is null)
            {
                return;
            }

            _deleteInProgress = true;

            // Yield thread to let UI to update
            await Task.Yield();

            await CompaniesBySoftwareVersionService.DeleteAsync(_currentCompanyBySoftwareVersion.Id,
                                                                (await UserManager.GetUserAsync(_authState.User)).Id);

            _softwareVersionCompanies = await CompaniesBySoftwareVersionService.GetBySoftwareVersion(Id);

            _deleteInProgress = false;
            _frmDelete.Hide();

            // Yield thread to let UI to update
            await Task.Yield();

            // Tell we finished loading
            StateHasChanged();
        }
        async Task ConfirmAddCompany()
        {
            if (_addingCompanyId is null ||
                _addingCompanyId <= 0)
            {
                CancelAddCompany();

                return;
            }

            _savingCompany = true;

            // Yield thread to let UI to update
            await Task.Yield();

            await CompaniesBySoftwareVersionService.CreateAsync(_addingCompanyId.Value, Id, _addingCompanyRoleId,
                                                                (await UserManager.GetUserAsync(_authState.User)).Id);

            _softwareVersionCompanies = await CompaniesBySoftwareVersionService.GetBySoftwareVersion(Id);

            _addingCompany   = false;
            _savingCompany   = false;
            _addingCompanyId = null;

            // Yield thread to let UI to update
            await Task.Yield();

            // Tell we finished loading
            StateHasChanged();
        }
        protected override async Task OnAfterRenderAsync(bool firstRender)
        {
            if (_loaded)
            {
                return;
            }

            _loaded = true;

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

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

            _softwareVersions = await Service.GetAsync();

            _softwareFamilies = await SoftwareFamiliesService.GetAsync();

            _licenses = await LicensesService.GetAsync();

            _companies = await CompaniesService.GetAsync();

            _roles = await DocumentRolesService.GetEnabledAsync();

            _model = _creating ? new SoftwareVersionViewModel() : await Service.GetAsync(Id);

            _authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();

            _addingCompanyRoleId      = _roles.First().Id;
            _softwareVersionCompanies = await CompaniesBySoftwareVersionService.GetBySoftwareVersion(Id);

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

            if (_editing)
            {
                SetCheckboxes();
            }

            StateHasChanged();
        }