Beispiel #1
0
        private IEnumerable <IInfosOpérationDépôt> TéléchargerCabs(IEnumerable <IParution> parutionsCiblées,
                                                                   IDépôtCabPao dépôtCabPao,
                                                                   IDépôtCab dépôtCabExterne,
                                                                   IOptionsTéléchargementCabs optionsTéléchargement,
                                                                   IAfficheurTâches afficheurTâches)
        {
            var observer = _taskObserverFactory.CreateTaskObserver();

            afficheurTâches.AjouterTâche($"Téléchargement des Cabs depuis [{dépôtCabExterne}]",
                                         observer);
            try
            {
                observer.NotifyStarted(this);
                observer.NotifyProgress(this, 0);

                var résultat =
                    TéléchargerCabsCore(parutionsCiblées, dépôtCabPao, dépôtCabExterne,
                                        optionsTéléchargement.ConvertirCabVersTiff, observer);

                observer.NotifyProgress(this, 100);
                observer.NotifyCompleted(this);

                return(résultat);
            }
            catch (Exception exception)
            {
                observer.NotifyError(this, exception.DetailedMessage());
                observer.NotifyAborted(this, "Interruption causée par une erreur");
                throw;
            }
        }
Beispiel #2
0
 public Task <IEnumerable <InfosTraitementParution> > VérifierEtTéléchargerCabsAsync(
     DateTime dhlMin, DateTime dhlMax,
     IOptionsSélectionParutions optionsSélection, IOptionsTéléchargementCabs optionsTéléchargement,
     IAfficheurTâches afficheurTâches)
 {
     return
         (Task.Factory.StartNew(
              () =>
              VérifierEtTéléchargerCabs(dhlMin, dhlMax, optionsSélection, optionsTéléchargement, afficheurTâches),
              TaskCreationOptions.AttachedToParent | TaskCreationOptions.LongRunning));
 }
Beispiel #3
0
 private Task <IEnumerable <IInfosOpérationDépôt> > TéléchargerCabsAsync(
     Task <IEnumerable <IParution> > parutionsCibléesTask, Task <IDépôtCab> cabsPaoTask,
     Task <IDépôtCab> cabsExternesTask, IOptionsTéléchargementCabs optionsTéléchargement,
     IAfficheurTâches afficheurTâches)
 {
     return(Task.Factory.StartNew(
                () =>
                TéléchargerCabs(parutionsCibléesTask.Result, cabsPaoTask.Result as IDépôtCabPao, cabsExternesTask.Result,
                                optionsTéléchargement, afficheurTâches),
                TaskCreationOptions.AttachedToParent | TaskCreationOptions.LongRunning));
 }
Beispiel #4
0
        private IEnumerable <InfosTraitementParution> VérifierEtTéléchargerCabs(DateTime dhlMin, DateTime dhlMax,
                                                                                IOptionsSélectionParutions
                                                                                optionsSélection,
                                                                                IOptionsTéléchargementCabs
                                                                                optionsTéléchargement,
                                                                                IAfficheurTâches afficheurTâches)
        {
            Task <IEnumerable <IInfosOpérationDépôt> > téléchargerCabsMlpTask  = null;
            Task <IEnumerable <IInfosOpérationDépôt> > téléchargerCabsNmppTask = null;
            var cabsPaoTask          = ChargerDépôtCabAsync(_dépôtCabPao, afficheurTâches);
            var parutionsCibléesTask = ParutionsCibléesAsync(dhlMin, dhlMax, optionsSélection);

            if (optionsTéléchargement.ExaminerSiteMlp)
            {
                var cabsMlpTask = ChargerDépôtCabAsync(_dépôtCabMlp, afficheurTâches);
                téléchargerCabsMlpTask = TéléchargerCabsAsync(parutionsCibléesTask, cabsPaoTask, cabsMlpTask,
                                                              optionsTéléchargement, afficheurTâches);
            }
            else
            {
                téléchargerCabsMlpTask =
                    Task.Factory.StartNew(() => (IEnumerable <IInfosOpérationDépôt>) new List <IInfosOpérationDépôt>());
            }
            if (optionsTéléchargement.ExaminerSiteNmpp)
            {
                var cabsNmppTask = ChargerDépôtCabAsync(_dépôtCabNmpp, afficheurTâches);
                téléchargerCabsNmppTask = TéléchargerCabsAsync(parutionsCibléesTask, cabsPaoTask, cabsNmppTask,
                                                               optionsTéléchargement, afficheurTâches);
            }
            else
            {
                téléchargerCabsNmppTask =
                    Task.Factory.StartNew(() => (IEnumerable <IInfosOpérationDépôt>) new List <IInfosOpérationDépôt>());
            }

            var infosParutions = InfosParutions(parutionsCibléesTask.Result,
                                                téléchargerCabsMlpTask.Result.Union(
                                                    téléchargerCabsNmppTask.Result));

            EnvoyerRapportMail(infosParutions);

            return(infosParutions);
        }