public void Handle(TravelPlansChanged e) { var tournament = GetTournamentFromContingentId(e.Id); var travelPlans = e.TravelPlans.Select(travelPlan => new TravelPlan { FlightNumber = travelPlan.FlightNumber, ModeOfTransportation = travelPlan.ModeOfTransportation, NumberOfPeople = travelPlan.NumberOfPeople, Type = travelPlan.Type, When = travelPlan.When, }).ToList(); var contingentPlans = tournament.ContingentTravelPlans.FirstOrDefault(x => x.Id == e.Id); if (contingentPlans != null) { contingentPlans.TravelPlans.Clear(); } else { var contingent = Contingents.Single(x => x.Key == e.Id); contingentPlans = new ContingentTravelPlans { Id = contingent.Key, Province = contingent.Value, }; tournament.ContingentTravelPlans.Add(contingentPlans); } travelPlans.ForEach(contingentPlans.TravelPlans.Add); }
public void Apply(TravelPlansChanged e) { TravelPlans = e.TravelPlans.Select(x => new TravelPlan(x)).ToList(); }