void SelectDrivers_ObjectSelected(object sender, OrmReferenceObjectSectedEventArgs e) { var addDrivers = e.GetEntities <Employee>().ToList(); logger.Info("Получаем авто для водителей..."); MainClass.progressBarWin.ProgressStart(2); var onlyNew = addDrivers.Where(x => driversAtDay.All(y => y.Employee.Id != x.Id)).ToList(); var allCars = CarRepository.GetCarsbyDrivers(uow, onlyNew.Select(x => x.Id).ToArray()); MainClass.progressBarWin.ProgressAdd(); foreach (var driver in addDrivers) { if (driversAtDay.Any(x => x.Employee.Id == driver.Id)) { logger.Warn("Водитель {0} уже добавлен. Пропускаем...", driver.ShortName); continue; } var atwork = new AtWorkDriver(driver, DialogAtDate, allCars.FirstOrDefault(x => x.Driver.Id == driver.Id) ); if (driver.DefaultForwarder != null) { var forwarder = ForwardersAtDay.FirstOrDefault(x => x.Employee.Id == driver.DefaultForwarder.Id); if (forwarder == null) { if (MessageDialogWorks.RunQuestionDialog($"Водитель {driver.ShortName} обычно ездить с экспедитором {driver.DefaultForwarder.ShortName}. Он отсутствует в списке экспедиторов. Добавить его в список?")) { forwarder = new AtWorkForwarder(driver.DefaultForwarder, DialogAtDate); observableForwardersAtDay.Add(forwarder); } } if (forwarder != null && DriversAtDay.All(x => x.WithForwarder != forwarder)) { atwork.WithForwarder = forwarder; } } driversAtDay.Add(atwork); } MainClass.progressBarWin.ProgressAdd(); DriversAtDay = driversAtDay.OrderBy(x => x.Employee.ShortName).ToList(); logger.Info("Ок"); MainClass.progressBarWin.ProgressClose(); }
string RenderForwaderWithDriver(AtWorkForwarder atWork) { return(String.Join(", ", driversAtDay.Where(x => x.WithForwarder == atWork).Select(x => x.Employee.ShortName))); }