Ejemplo n.º 1
0
 public void Remove(ISection section, Action <OnCompleteEventArgs> onComplete)
 {
     if (!IsOpened)
     {
         _uiNotifier.Notify(() => onComplete(new OnCompleteEventArgs(OnCompleteEventArgs.CompleteResult.Error, "Сперва необходимо открыть репозиторий!")));
     }
     else
     {
         _backWorker.AddWork(
             () => {
             try {
                 var devInfosToRemove = _deviceInformationStorage.DeviceInformations.Where(di => di.Id.ToString() == section.DeviceInformationId.ToString()).ToList();
                 foreach (var devInfo in devInfosToRemove)
                 {
                     IDeviceInformation info = devInfo;                                     // for closure
                     var idsToRemove         = _psnDataInformtationStorage.PsnDataInformations.Where(pdi => pdi.DeviceInformationId == info.Id).Select(pdi => pdi.Id).ToList();
                     foreach (var idToRemove in idsToRemove)
                     {
                         _psnDataStorage.Remove(idToRemove);
                         _psnDataInformtationStorage.Remove(idToRemove);
                         _psnDataCustomConfigurationsStorage.Remove(idToRemove);
                     }
                     // TODO: remove RPD logs
                     _deviceInformationStorage.Remove(devInfo.Id);
                 }
                 UpdateLocomotivesIfDeletedUnsafe();
                 _uiNotifier.Notify(() => onComplete(new OnCompleteEventArgs(OnCompleteEventArgs.CompleteResult.Ok, "Секция удалена из репозитория")));
             }
             catch (Exception ex) {
                 _uiNotifier.Notify(() => onComplete(new OnCompleteEventArgs(OnCompleteEventArgs.CompleteResult.Error, ex.ToString())));
             }
         });
     }
 }
        /// <summary>
        /// Удаляет данные из хранилища
        /// </summary>
        /// <param name="psnDataCustomConfigurationId">Идентификатор записи данных, которые необходимо удалить</param>
        public void Remove(IIdentifier psnDataCustomConfigurationId)
        {
            var customConfigs = _customConfigs.Where(cc => cc.Id == psnDataCustomConfigurationId).ToList();

            foreach (var pdccw in customConfigs)
            {
                _customConfigs.Remove(pdccw);
            }

            _subStorage.Remove(psnDataCustomConfigurationId);
        }