/// <summary>
 /// Изменения коллекции при корректировке статуса конвертирования
 /// </summary>
 private void ActionOnTypeStatusChange(FilesChange filesChange)
 {
     if (filesChange.IsStatusProcessingProjectChanged &&
         _statusProcessingInformation.StatusProcessingProject == StatusProcessingProject.End)
     {
         ActionOnTypeAddErrors(filesChange);
     }
 }
        /// <summary>
        /// Добавить ошибки после окончания конвертирования
        /// </summary>
        private void ActionOnTypeAddErrors(FilesChange filesChange)
        {
            FilesErrorsCollection.Clear();
            var errorViewModelItems = filesChange.FilesData.SelectMany(GetErrorViewModelItemsFromFileData).ToList();

            FilesErrorsCollection.AddRange(errorViewModelItems);

            VisibilityChange.OnNext(Visibility);
        }
Пример #3
0
        /// <summary>
        /// Изменить статус файла и присвоить при необходимости ошибку
        /// </summary>
        public void ChangeFileStatus(StatusProcessingProject statusProcessingProject, FileStatus fileStatus)
        {
            bool isStatusProjectChanged = SetStatusProcessingProject(statusProcessingProject);
            var  filesDataChanged       = _filesData.First(file => file.FilePath == fileStatus.FilePath).
                                          ChangeByFileStatus(fileStatus);

            var fileChange = new FilesChange(_filesData, filesDataChanged, ActionType.StatusChange, isStatusProjectChanged);

            UpdateFileData(fileChange);
        }
Пример #4
0
        /// <summary>
        /// Изменить статус файла и присвоить при необходимости ошибку
        /// </summary>
        public void ChangeFilesStatus(PackageStatus packageStatus)
        {
            if (packageStatus?.IsValid != true)
            {
                return;
            }

            bool isStatusProcessingProjectChanged = SetStatusProcessingProject(packageStatus.StatusProcessingProject);

            FilesQueueInfo = FilesQueueInfo.GetQueueInfoByStatus(packageStatus.QueueStatus, StatusProcessingProject);

            var filesDataChanged = packageStatus.FileStatus.
                                   Select(fileStatus => _filesData.FirstOrDefault(file => file.FilePath == fileStatus.FilePath)?.
                                          ChangeByFileStatus(fileStatus)).
                                   Where(fileData => fileData != null);

            var fileChange = new FilesChange(_filesData, filesDataChanged, ActionType.StatusChange, isStatusProcessingProjectChanged);

            UpdateFileData(fileChange);
        }
Пример #5
0
 /// <summary>
 /// Обновить список файлов
 /// </summary>
 private void UpdateFileData(FilesChange fileChange) =>
 FileDataChange.OnNext(fileChange);
Пример #6
0
 private void OnFilesChange()
 {
     FilesChange?.Invoke(this, new EventArgs());
 }