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)); }
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); } }