public void Open(Action <OnCompleteEventArgs> onComplete, Action <OnProgressChangeEventArgs> onProgressChange) { _uiNotifier.Notify(() => onProgressChange(new OnProgressChangeEventArgs(0))); if (!IsOpened) { IsOpened = true; _backWorker.AddWork( () => { try { var openResult = _openStorageFunc(); _psnDataStorage = openResult.PsnDataStorage; _psnDataInformtationStorage = openResult.PsnDataInformationStorage; _psnDataCustomConfigurationsStorage = openResult.PsnDataCustomConfigurationsesStorage; _deviceInformationStorage = openResult.DeviceInformationStorage; _psnConfigurationsStorage = openResult.PsnConfigurationsStorage; InitialTreeBuildUnsafe(pp => _uiNotifier.NotifyAndWait(() => onProgressChange(new OnProgressChangeEventArgs((int)pp)))); _uiNotifier.NotifyAndWait(() => onProgressChange(new OnProgressChangeEventArgs(100))); _uiNotifier.NotifyAndWait(() => onComplete(new OnCompleteEventArgs(OnCompleteEventArgs.CompleteResult.Ok, "Репозиторий успешно открыт"))); } catch (Exception ex) { _uiNotifier.NotifyAndWait(() => onComplete(new OnCompleteEventArgs(OnCompleteEventArgs.CompleteResult.Error, ex.ToString()))); IsOpened = false; } }); } else { _uiNotifier.Notify(() => onProgressChange(new OnProgressChangeEventArgs(100))); _uiNotifier.Notify(() => onComplete(new OnCompleteEventArgs(OnCompleteEventArgs.CompleteResult.Ok, "Внимание, репозиторий уже открыт"))); } }
public ReposetoryOpenedResultSimple(IPsnDataStorage psnDataStorage, IPsnDataInformationStorage psnDataInformationStorage, IDeviceInformationStorage deviceInformationStorage, IPsnDataCustomConfigurationsStorage psnDataCustomConfigurationsesStorage, IStorage <IPsnProtocolConfiguration> psnConfigurationsStorage) { _psnDataStorage = psnDataStorage; _psnDataInformationStorage = psnDataInformationStorage; _deviceInformationStorage = deviceInformationStorage; _psnDataCustomConfigurationsesStorage = psnDataCustomConfigurationsesStorage; _psnConfigurationsStorage = psnConfigurationsStorage; }
public PsnDataInformationStorageRelayMemoryCache(IPsnDataInformationStorage relayOnStorage) { _relayOnStorage = relayOnStorage; _psnDataInformations = relayOnStorage.PsnDataInformations.ToList(); // TODO: check lazy way out }