/// <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); }
/// <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); }
/// <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); }
/// <summary> /// Обновить список файлов /// </summary> private void UpdateFileData(FilesChange fileChange) => FileDataChange.OnNext(fileChange);
private void OnFilesChange() { FilesChange?.Invoke(this, new EventArgs()); }