public BurningViewModel GetViewModel(int CellKindId, int ModificationId, IValidationContext ValidationContext, IProjectAssembler projectAssembler)
        {
            BlockKind cellKind = _indexHelper.GetCell(CellKindId);
            ModificationKind modification = _indexHelper.GetModification(cellKind, ModificationId);

            List<BurningOptionViewModel> burningOptions = Enumerable.Range(1, cellKind.ChannelsCount)
                                                                    .Select(i => new BurningOptionViewModel(String.Format("Канал {0}", i), i, _burningStatus))
                                                                    .ToList();
            List<BurningMethodViewModel> burningMethods = _burningService.GetBurningMethods(modification.DeviceName)
                                                                         .Select(
                                                                             burningMethod =>
                                                                             new BurningMethodViewModel(burningMethod.Name, burningMethod.Receipt))
                                                                         .ToList();

            var viewModel = new BurningViewModel(burningOptions, burningMethods, _burningStatus);
            var controller = new BurningViewModelController(viewModel, CellKindId, _eventAggregator, _settingsService, ValidationContext, projectAssembler,
                                                            _burningService);
            return viewModel;
        }
        public BurningViewModelController(BurningViewModel ViewModel, int CellKindId, IEventAggregator EventAggregator, ISettingsService SettingsService,
                                          IValidationContext ValidationContext, IProjectAssembler ProjectAssembler, IBurningService BurningService)
        {
            _viewModel = ViewModel;
            _settingsService = SettingsService;
            _validationContext = ValidationContext;
            _projectAssembler = ProjectAssembler;
            _burningService = BurningService;
            _cellKindId = CellKindId;
            _viewModel.SelectedBurningMethodChanged += ViewModelOnSelectedBurningMethodChanged;

            foreach (BurningOptionViewModel burningOption in _viewModel.BurningOptions)
                burningOption.Activated += BurningOptionOnActivated;

            string preferredBurningMethod = _settingsService.GetPreferredBurningMethod(CellKindId);
            _viewModel.SelectedBurningMethod =
                _viewModel.BurningMethods.FirstOrDefault(m => m.Name == preferredBurningMethod)
                ?? _viewModel.BurningMethods.FirstOrDefault();
            EventAggregator.GetEvent<ProjectChangedEvent>().Subscribe(OnProjectChanged);
        }
 public ProjectManagerViewModel(ProjectViewModel Project, BurningViewModel Burning)
 {
     this.Project = Project;
     this.Burning = Burning;
 }