private void Fill(SuperexpressDrawModel draw, SuperexpressDrawInfoModel drawInfo) { Headers.Clear(); Events.Clear(); var outcomesIds = draw.Events .SelectMany(x => x.Coefficients) .Select(x => x.Outcome) .Select(x => x.Id) .Distinct(); foreach (var outcome in outcomesIds) { var outcomeName = draw.Events.SelectMany(x => x.Coefficients).FirstOrDefault(x => x.Outcome.Id == outcome).Outcome.Name; Headers.Add(outcomeName); } foreach (var item in draw.Events) { var ev = new EventViewModel { Id = item.ID, Name = item.Name, Path = item.BranchPathName }; foreach (var outcome in outcomesIds) { var coefficient = item.Coefficients .Where(x => x.Outcome.Id == outcome) .Select(x => new CoefficientViewModel { Id = x.Id, Name = x.Outcome.Name, IsSelected = false }) .FirstOrDefault(); if (coefficient != null) { coefficient.SelectedChanged += CoefficientSelectedChanged; } ev.Coefficients.Add(coefficient); } Events.Add(ev); } CalculateVariantsAmount(); DrawChanged?.Invoke(this); }
void ISuperexpressDrawObserver.PopulateDraw(SuperexpressDrawModel model) { //dispose work Fill(model, _info); }