public void CreateDistributions() { try { Distributions = new ObservableCollection <Distribution>(); // divide packages into distributions List <Package>[] DividedPackages = AddDistributionM.DividePackages(Packages.ToList()); Application.Current.Dispatcher.BeginInvoke( new Action(() => { AddDistributions(DividedPackages); })); // show areas on map Application.Current.Dispatcher.BeginInvoke( new Action(() => { ShowAreasOnMap(); })); // add to database Application.Current.Dispatcher.BeginInvoke( new Action(() => { AddDistributionM.AddDistributions(new List <Distribution>(Distributions)); })); IsDistributionReady = true; // finish Recipients = new ObservableCollection <Recipient>(AddDistributionM.Recipients); } catch (Exception e) { Message = new Message("משהו השתבש.", e.Message, false, true); } }
private void AssignVolunteers() { // find closest volunteer for each distribution List <Volunteer> volunteers = new List <Volunteer>(AddDistributionM.GetAllVolunteers()); foreach (Distribution d in Distributions) { Volunteer closestVolunteer = AddDistributionM.FindClosestVolunteer(volunteers, d.Packages[0].Recipient.Address); d.VolunteerId = closestVolunteer.VolunteerId; volunteers.Remove(closestVolunteer); } }
public AddDistributionVM() { AddDistributionM = new AddDistributionM(); Recipients = new ObservableCollection <Recipient>(AddDistributionM.Recipients); DistributionDate = DateTime.Now.Date; GetAllCities(); SelectedCity = Cities.First(x => x.Equals("כל הארץ")); AreasMap = new MapUC(); }