Beispiel #1
0
        private static void UpdateFirstDeviceInfoInStorage(IDeviceInformationStorage storage)
        {
            Log("Попробуем обновить информацию об устройстве");
            var firstDevInfo = storage.DeviceInformations.First();

            storage.Update(firstDevInfo.Id, "Электровоз", "2");
        }
Beispiel #2
0
        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 Locomotive(string name, IWorker <Action> backWorker, IDeviceInformationStorage backSotrage)
        {
            Name         = name;
            _backWorker  = backWorker;
            _backSotrage = backSotrage;

            Sections = new ObservableCollection <ISection>();
        }
Beispiel #4
0
 public ReposetoryOpenedResultSimple(IPsnDataStorage psnDataStorage, IPsnDataInformationStorage psnDataInformationStorage, IDeviceInformationStorage deviceInformationStorage, IPsnDataCustomConfigurationsStorage psnDataCustomConfigurationsesStorage, IStorage <IPsnProtocolConfiguration> psnConfigurationsStorage)
 {
     _psnDataStorage                       = psnDataStorage;
     _psnDataInformationStorage            = psnDataInformationStorage;
     _deviceInformationStorage             = deviceInformationStorage;
     _psnDataCustomConfigurationsesStorage = psnDataCustomConfigurationsesStorage;
     _psnConfigurationsStorage             = psnConfigurationsStorage;
 }
Beispiel #5
0
        public Section(IUid deviceInformationId, string name, IWorker <Action> backWorker, IDeviceInformationStorage backStorage)
        {
            _deviceInformationId = deviceInformationId;
            _name = name;

            _backWorker  = backWorker;
            _backStorage = backStorage;

            Faults = new ObservableCollection <IFaultLog>();
            Psns   = new ObservableCollection <IPsnLog>();
        }
Beispiel #6
0
        private static void ClearStorage(IPsnDataStorage storage, IDeviceInformationStorage devstorage)
        {
            var logs = storage.PsnDatas.ToList();

            foreach (var psnLog in logs)
            {
                storage.Remove(psnLog.Id);
                Log("Лог удален из хранилища");
            }

            var devInfos = devstorage.DeviceInformations.ToList();

            foreach (var deviceInformation in devInfos)
            {
                devstorage.Remove(deviceInformation.Id);
                Log("Информация об устройстве удалена из хранилища");
            }
        }
Beispiel #7
0
        private static void SaveLogsToStorage(IPsnDataStorage srcPsnStorage, IDeviceInformationStorage srcDevInfoStorage, IPsnDataStorage dstPsnStorage, IDeviceInformationStorage dstDevInfoStorage)
        {
            Log("Локальное хранилище создано, число ПСН логов в хранилище: " + dstPsnStorage.PsnDatas.Count());

            var devInfosInStorage = srcDevInfoStorage.DeviceInformations.ToList();
            var psnLogsInStorage  = srcPsnStorage.PsnDatas.ToList();

            Log("Число информаций об устройстве на устройстве: " + devInfosInStorage.Count);
            foreach (var devInfo in devInfosInStorage)
            {
                if (!dstDevInfoStorage.DeviceInformations.Any(i => i.Name == devInfo.Name && i.Description == devInfo.Description))
                {
                    dstDevInfoStorage.Add(devInfo.Id, devInfo.Name, devInfo.Description);
                    Log("Информация об устройстве сохранена в локальное хранилище");
                }
                else
                {
                    Log("Такая информация об устройстве уже есть в локальном харинилище");
                }
            }

            Log("Число ПСН логов на устройстве: " + psnLogsInStorage.Count);
            foreach (var psnLog in srcPsnStorage.PsnDatas)
            {
                //Console.WriteLine("PsnLog " + psnLog.LogInformation.BeginTime.ToString());
                if (!dstPsnStorage.PsnDatas.Any(pl => pl.Id.ToString() == psnLog.Id.ToString()))
                {
                    dstPsnStorage.Add(psnLog.Id, psnLog, pp => Console.WriteLine(pp.ToString("f2")));
                    Log("Лог сохранен в локальное хранилище");
                }
                else
                {
                    Log("Такой лог уже есть в локальном хранилище");
                }
            }

            Log("Число ПСН логов в хранилище после сохранения: " + dstPsnStorage.PsnDatas.Count());
        }
Beispiel #8
0
 public DeviceInformationStorageRelayMemoryCache(IDeviceInformationStorage relayOnStorage)
 {
     _relayOnStorage     = relayOnStorage;
     _deviceInformations = _relayOnStorage.DeviceInformations.Select(di => (IDeviceInformationWritable) new DeviceInformationSimple(di.Name, di.Description, di.Id)).ToList();
 }