private void TéléchargerCab(ICab cab, string cheminFichierCab, ITaskObserver observer) { observer.NotifyInfo(this, $"Transfert du Cab depuis [{cab.Url}] vers [{cheminFichierCab}]"); TéléchargerCab(cab, cheminFichierCab); observer.NotifyInfo(this, $"Cab [{cab.Url}] récupéré dans [{cheminFichierCab}]"); }
private ICab IntégrerCabTéléchargé(ICab cab, string cheminFichierCab, ITaskObserver observer) { observer.NotifyInfo(this, $"Vérification et intégration du nouveau Cab téléchargé [{cheminFichierCab}]"); var newCab = IntégrerCabTéléchargé(cab, cheminFichierCab); observer.NotifyInfo(this, $"Nouveau Cab téléchargé [{cheminFichierCab}] vérifié et intégré : [{newCab}]"); return(newCab); }
private IInfosOpérationDépôt TéléchargerCabSiNécessaireCore(IParution p, IDépôtCab dépôtCabExterne, IDépôtCabPao dépôtCabPao, bool conversionVerstiff, ITaskObserver observer) { try { var cabExterne = dépôtCabExterne.Cab(p); var cabPao = dépôtCabPao.Cab(p); if (cabExterne != null) { if (cabPao == null || cabExterne.DateCréation > cabPao.DateCréation) { if (cabExterne.EstCompatible) { observer.NotifyInfo(this, $"Téléchargement nécessaire du cab de [{p}] ([{cabExterne.LibelléLong}])."); return(_infosOpérationDépôtFactory.CréerInfosOpérationDépôt(cabExterne, dépôtCabPao.Déposer(cabExterne, conversionVerstiff, observer), cabPao, EtatCabOnline.Téléchargé, p)); } return(_infosOpérationDépôtFactory.CréerInfosOpérationDépôt(cabExterne, null, cabPao, EtatCabOnline.Incompatible, p)); } else { return(_infosOpérationDépôtFactory.CréerInfosOpérationDépôt(cabExterne, null, cabPao, EtatCabOnline.PasPlusRécent, p)); } } else { return(_infosOpérationDépôtFactory.CréerInfosOpérationDépôt(null, null, cabPao, EtatCabOnline.Indisponible, p)); } } catch (Exception exception) { observer.NotifyWarning(this, $"Echec dans la recherche de Cab pour [{p}] ({exception.DetailedMessage()})"); return(null); } }
public virtual ICab Déposer(ICab cab, bool créerFichierTiff, ITaskObserver observer) { if (cab == null) { throw new ArgumentNullException(nameof(cab)); } if (observer == null) { throw new ArgumentNullException(nameof(observer)); } observer.NotifyInfo(this, $"Début du téléchargement du Cab [{cab}] pour [{cab.ParutionCible}] depuis [{cab.Dépôt}] vers [{this}]"); if (cab.Dépôt == this) { observer.NotifyWarning(this, $"Tentative de téléchargement d'un Cab vers lui-même : [{cab.Url}], opération ignorée"); return(cab); } string cheminDossierCab = CheminDossierCab(cab); if (String.IsNullOrWhiteSpace(cheminDossierCab)) { throw new Exception( $"Impossible de trouver le dossier [{cheminDossierCab}] pour y déposer le Cab [{cab}]"); } string nomFichierCab = NomFichierCab(cab); string cheminFichierCab = Path.Combine(cheminDossierCab, nomFichierCab); string nomFichierTiff = Path.GetFileNameWithoutExtension(nomFichierCab) + ".tif"; string cheminFichierTiff = Path.Combine(cheminDossierCab, nomFichierTiff); EffacerFichiersCab(cab, cheminDossierCab, observer); TéléchargerCab(cab, cheminFichierCab, observer); Task conversionTask; if (créerFichierTiff) { conversionTask = ConvertirVersTiffAsync(cheminFichierCab, cheminFichierTiff, observer); } else { conversionTask = null; } var newCab = IntégrerCabTéléchargé(cab, cheminFichierCab, observer); if (conversionTask != null) { try { conversionTask.Wait(); } catch (Exception exception) { observer.NotifyWarning(this, $"Echec de la conversion en Tiff de [{cheminFichierCab}] vers [{cheminFichierTiff}] : {exception.DetailedMessage()}"); } } observer.NotifyInfo(this, $"Fin du téléchargement du Cab [{cab}] pour [{cab.ParutionCible}] depuis [{cab.Dépôt}] vers [{this}]"); return(newCab); }
private void EffacerFichiersCab(ICab cab, string cheminDossierCab, ITaskObserver observer) { observer.NotifyInfo(this, $"Effacement des anciens fichiers Cab et Tiff pour [{cab.ParutionCible}]"); EffacerFichiersCabs(cheminDossierCab); observer.NotifyInfo(this, $"Anciens fichiers Cab et Tiff pour [{cab.ParutionCible}] effacés"); }
private void ConvertirVersTiff(string cheminFichierCab, string cheminFichierTiff, ITaskObserver observer) { observer.NotifyInfo(this, $"Conversion de [{cheminFichierCab}] en Tiff"); ConvertirVersTiff(cheminFichierCab, cheminFichierTiff); observer.NotifyInfo(this, $"[{cheminFichierCab}] a été converti en Tiff dans [{cheminFichierTiff}]"); }