public EditAccountViewModel(DeviceViewModel device,
                                    AccountRecord accountRecord,
                                    IWindowsManager windowsManager,
                                    IQrScannerHelper qrScannerHelper,
                                    IMetaPubSub metaMessenger)
        {
            _windowsManager  = windowsManager;
            _qrScannerHelper = qrScannerHelper;
            _device          = device;
            _metaMessenger   = metaMessenger;

            if (accountRecord == null)
            {
                IsNewAccount  = true;
                cache         = new AccountRecord();
                AccountRecord = new AccountRecord();
            }
            else
            {
                cache         = accountRecord;
                AccountRecord = new AccountRecord
                {
                    Key       = accountRecord.Key,
                    StorageId = accountRecord.StorageId,
                    Timestamp = accountRecord.Timestamp,
                    Flags     = accountRecord.Flags,
                    Name      = accountRecord.Name,
                    Login     = accountRecord.Login,
                    Password  = accountRecord.Password,
                    OtpSecret = accountRecord.OtpSecret,
                    Apps      = accountRecord.Apps,
                    Urls      = accountRecord.Urls,
                    IsPrimary = accountRecord.IsPrimary,
                };
                InitProp(AccountRecord);
            }
            HasOpt = cache.Flags.HasOtp;
            InitDependencies();
        }
 public EditAccountViewModel(DeviceViewModel device, IWindowsManager windowsManager, IQrScannerHelper qrScannerHelper, IMetaPubSub metaMessenger)
     : this(device, null, windowsManager, qrScannerHelper, metaMessenger)
 {
 }