private void AddInstrumentEquipmentButtonHandler(object parameter) { AddIssueInstrumentDialog addIssueInstrumentDialog = new AddIssueInstrumentDialog(); addIssueInstrumentDialog.Show(); addIssueInstrumentDialog.Closed += (s1, e1) => { if (addIssueInstrumentDialog.DialogResult.HasValue && addIssueInstrumentDialog.DialogResult.Value) { List<QuickInstrument> equipmentsToAdd = addIssueInstrumentDialog.SelectedEquipments.ToList(); List<int> ids = (from x in equipmentsToAdd select x.Id).ToList(); CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cmsWebServiceClient.GetInstrumentsByIdsCompleted += (s2, e2) => { foreach (Instrument instrument in e2.Result) { IssueRelatedInstrument existingEquipments = (from x in mIssue.IssueRelatedInstruments where x.InstrumentId == instrument.Id select x).FirstOrDefault(); if (existingEquipments == null) { mIssue.IssueRelatedInstruments.Add(new IssueRelatedInstrument { IssueId = mIssue.Id, InstrumentId = instrument.Id, Instrument = instrument }); } } RaiseChangeEvent(); RaisePropertyChanged("IssueRelatedInstruments"); OnCollectionChanged(); }; cmsWebServiceClient.GetInstrumentsByIdsAsync(ids); } }; }
private void MoveComponentHandler(object parameter) { if (SelectedComponent != null) { AddIssueInstrumentDialog dialog = new AddIssueInstrumentDialog("Select Destination Tag", true, SelectedComponent.InstrumentId); dialog.Show(); //Select the component as user might have changed the component type //and this needs to reload the component type properties dialog.Closed += (s1, e1) => { if (dialog.DialogResult.HasValue && dialog.DialogResult.Value) { if (dialog.SelectedEquipment != null) { SelectedComponent.InstrumentId = dialog.SelectedEquipment.Id; //need to CLONE due to the line "RaisePropertyChanged("Components");" var movedInstrumentComponent = CloneComponent(SelectedComponent); movedInstrumentComponent.Instrument = new Instrument { Id = dialog.SelectedEquipment.Id, Name = dialog.SelectedEquipment.Name }; MovedComponents.Add(movedInstrumentComponent); //remove mInstrument.InstrumentComponents.Remove(SelectedComponent); RaiseChangeEvent(); OnCollectionChanged(); mSelectedComponent = null; RaisePropertyChanged("Components"); } } }; } }