示例#1
0
 private IEnumerable <IParution> ParutionsCiblées(DateTime dhlMin, DateTime dhlMax,
                                                  IOptionsSélectionParutions optionsSélection)
 {
     return
         (RequêteParutionsCiblées(_dépôtParutions.Parutions.AsParallel(), dhlMin, dhlMax, optionsSélection)
          .ToList());
 }
示例#2
0
 private Task <IEnumerable <IParution> > ParutionsCibléesAsync(DateTime dhlMin, DateTime dhlMax,
                                                               IOptionsSélectionParutions optionsSélection)
 {
     return(Task.Factory.StartNew <IEnumerable <IParution> >(
                () => ParutionsCiblées(dhlMin, dhlMax, optionsSélection),
                TaskCreationOptions.AttachedToParent));
 }
示例#3
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));
 }
示例#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);
        }
示例#5
0
        private static IEnumerable <IParution> RequêteParutionsCiblées(IEnumerable <IParution> parutions, DateTime dhlMin,
                                                                       DateTime dhlMax,
                                                                       IOptionsSélectionParutions optionsSélection)
        {
            var req = from p in parutions
                      where (p.DateDhl >= dhlMin) && (p.DateDhl <= dhlMax) && !p.FaitSortie &&
                      (p.Distributeur.TypeDistributeur == TypeDistributeur.Mlp || p.Distributeur.TypeDistributeur == TypeDistributeur.Nmpp) &&
                      !p.SupplémentAutreProduit
                      select p;

            if (optionsSélection.FiltrerParCodeInterne && !String.IsNullOrWhiteSpace(optionsSélection.CodeInterne))
            {
                req = from p in req where p.CodeSérie == optionsSélection.CodeInterne select p;
            }

            if (optionsSélection.FiltrerParDate && optionsSélection.DateDébut.HasValue)
            {
                req = from p in req where p.DateDhl >= optionsSélection.DateDébut select p;
            }

            if (optionsSélection.FiltrerParDate && optionsSélection.DateFin.HasValue)
            {
                req = from p in req where p.DateDhl <= optionsSélection.DateFin select p;
            }

            if (optionsSélection.FiltrerParNuméro)
            {
                req = from p in req where p.Numéro == optionsSélection.Numéro select p;
            }

            if (optionsSélection.FiltrerParPôle && optionsSélection.Pôle != null)
            {
                req = from p in req where p.Pôle.LibelléCourt == optionsSélection.Pôle.LibelléCourt select p;
            }

            return(req);
        }