public void Logon(Guid?licenseGuid, LogonHistory history)
        {
            IUnitOfWorkScope scope   = null;
            Account          account = null;

            try
            {
                scope = _scopeFactory.Create();

                IsValid = true;
                _logger.Info($"Начало запроса авторизации для {licenseGuid}");
                if (!licenseGuid.HasValue)
                {
                    SetError("Не определен гуид лицензии");
                }
                else
                {
                    account = _accountRepository.GetByLicenseId(licenseGuid.Value);
                    if (account == null)
                    {
                        SetError($"Не найдена УЗ для {licenseGuid}");
                    }
                    else
                    {
                        var license = account.Licenses.FirstOrDefault(l => l.Guid == licenseGuid);
                        if (license == null)
                        {
                            SetError($"Не найдена лицензия по гуиду {licenseGuid}");
                        }
                        else if (!license.Access)
                        {
                            SetError($"Для УЗ {account.Id} заблокирован доступ для лицензии {licenseGuid}");
                        }
                    }
                }

                history.Account = account;
                _logonHistoryRepository.Save(history);

                scope.Commit();
                _logger.Info($"Завершение запроса авторизации для {licenseGuid} и УЗ {account.Return(a=>a.Id)} и логона {history.Return(h=>h.Id)}");
            }
            catch (Exception e)
            {
                SetError(e.ToString(), true);
            }
            finally
            {
                scope.Do(s => s.Dispose());
            }
        }