public OperatorActivitiesVM(OperatorVM opr, AccessType access) : base(access) { UnitOfWork = new SoheilEdmContext(); CurrentOperator = opr; OperatorDataService = new OperatorDataService(UnitOfWork); OperatorDataService.ActivityAdded += OnActivityAdded; OperatorDataService.ActivityRemoved += OnActivityRemoved; ActivityDataService = new ActivityDataService(UnitOfWork); ActivityOperatorDataService = new ActivitySkillDataService(UnitOfWork); ActivityGroupDataService = new ActivityGroupDataService(UnitOfWork); var selectedVms = new ObservableCollection<ActivityOperatorVM>(); foreach (var generalActivitySkill in OperatorDataService.GetActivities(opr.Id)) { selectedVms.Add(new ActivityOperatorVM(generalActivitySkill, Access, ActivityOperatorDataService, RelationDirection.Reverse)); } SelectedItems = new ListCollectionView(selectedVms); var allVms = new ObservableCollection<ActivityVM>(); foreach (var activity in ActivityDataService.GetActives() .Where(activity => !selectedVms.Any(activityOperator => activityOperator.ActivityId == activity.Id))) { allVms.Add(new ActivityVM(activity, Access, ActivityDataService, ActivityGroupDataService)); } AllItems = new ListCollectionView(allVms); IncludeCommand = new Command(Include, CanInclude); ExcludeCommand = new Command(Exclude, CanExclude); }
private void OnOperatorRemoved(object sender, ModelRemovedEventArgs e) { foreach (ActivityOperatorVM item in SelectedItems) { if (item.Id == e.Id) { var model = OperatorDataService.GetSingle(item.OperatorId); var returnedVm = new OperatorVM(model, Access, OperatorDataService); AllItems.AddNewItem(returnedVm); AllItems.CommitNew(); SelectedItems.Remove(item); break; } } }
private void OnOperatorAdded(object sender, ModelAddedEventArgs<Operator> e) { var newOperatorVm = new OperatorVM(e.NewModel, Access, OperatorDataService); Items.AddNewItem(newOperatorVm); Items.CommitNew(); CurrentContent = newOperatorVm; CurrentContent.IsSelected = true; }