private void DeleteTypeDataFromOwner(TypeDataOwnerInfo ownerInfo) { DatabaseCommand command = null; switch (_type) { case "trait": command = new DeleteTraitFromOwnerCommand(ownerInfo.ObjectID.Value); break; case "note": command = new DeleteNoteFromOwnerCommand(ownerInfo.ObjectID.Value); break; default: throw new NotImplementedException("Deleting type data for type: " + _type + " is currently unsupported!"); } if (command != null) { var model = lvwValues.ItemsSource as ObservableCollection <TypeDataOwnerInfo>; if (model != null) { model.Remove(ownerInfo); RegisterPendingChange(command); } } }
private void EditOwner(TypeDataOwnerInfo ownerInfo) { var ep = EntryPoint.Parse(ownerInfo.EntryPoint); LookupType?type = null; int objectId = -1; foreach (KeyValuePair <string, LookupType> mapping in _typeMappings) { if (ep.HasParameter(mapping.Key)) { type = mapping.Value; objectId = Int32.Parse(ep[mapping.Key]); break; } } if (type.HasValue && objectId >= 0) { PluginManager.Instance.EditLookupObject(type.Value, objectId); } else { MessageBox.Show(String.Format("Can't edit object! Owner call: {0} Owner Name: {1}, OwnerID={2}, EntryPoint={3}", ownerInfo.OwnerCall, ownerInfo.OwnerName, ownerInfo.OwnerID, ownerInfo.EntryPoint)); } }