public StationMachinesVM(StationVM station, AccessType access):base(access) { UnitOfWork = new SoheilEdmContext(); CurrentStation = station; StationDataService = new StationDataService(UnitOfWork); StationDataService.MachineAdded += OnMachineAdded; StationDataService.MachineRemoved += OnMachineRemoved; MachineDataService = new MachineDataService(UnitOfWork); StationMachineDataService = new StationMachineDataService(UnitOfWork); MachineFamilyDataService = new MachineFamilyDataService(UnitOfWork); var selectedVms = new ObservableCollection<StationMachineVM>(); foreach (var stationMachine in StationDataService.GetMachines(station.Id)) { selectedVms.Add(new StationMachineVM(stationMachine, Access, StationMachineDataService, RelationDirection.Straight)); } SelectedItems = new ListCollectionView(selectedVms); var allVms = new ObservableCollection<MachineVM>(); foreach (var machine in MachineDataService.GetActives() .Where(machine => !selectedVms.Any(stationMachine => stationMachine.MachineId == machine.Id))) { allVms.Add(new MachineVM(machine, Access, MachineDataService, MachineFamilyDataService)); } AllItems = new ListCollectionView(allVms); IncludeCommand = new Command(Include, CanInclude); ExcludeCommand = new Command(Exclude, CanExclude); IncludeAllCommand = new Command(o => { foreach (var vm in allVms.ToArray()) { StationDataService.AddMachine(CurrentStation.Id, ((IEntityItem)vm).Id); } }, () => allVms.Any()); }
private void OnStationRemoved(object sender, ModelRemovedEventArgs e) { foreach (StationMachineVM item in SelectedItems) { if (item.Id == e.Id) { var model = StationDataService.GetSingle(item.StationId); var returnedVm = new StationVM(model, Access, StationDataService); AllItems.AddNewItem(returnedVm); AllItems.CommitNew(); SelectedItems.Remove(item); break; } } }
private void OnStationAdded(object sender, ModelAddedEventArgs<Station> e) { var newStationVm = new StationVM(e.NewModel, Access, StationDataService); Items.AddNewItem(newStationVm); Items.CommitNew(); CurrentContent = newStationVm; CurrentContent.IsSelected = true; }