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