Beispiel #1
0
        private IEnumerable <InfosTraitementParution> InfosParutions(IEnumerable <IParution> parutions,
                                                                     IEnumerable <IInfosOpérationDépôt>
                                                                     infosOpérationDépôt)
        {
            //var hs = new HashSet<IParution>();
            //foreach(var info in infosOpérationDépôt)
            //{
            //    if(info.CabSource!=null)
            //    {
            //        if(hs.Contains(info.CabSource.ParutionCible))
            //            Debugger.Break();
            //        hs.Add(info.CabSource.ParutionCible);
            //    }
            //}


            var dicInfos =
                infosOpérationDépôt.Where(i => i.CabSource != null).ToDictionary(i => i.ParutionCible);

            return
                (from p in parutions
                 orderby p.DateDhl
                 let infoOnline = dicInfos.ContainsKey(p) ? dicInfos[p] : null
                                  select new InfosTraitementParution(p, _dépôtCabPao.Cab(p), infoOnline));
        }
Beispiel #2
0
 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);
     }
 }