private void EditJewelry(Object parameter) { IsEditingJewelryAllowed = false; try { Type type = JewelryToEdit.GetType(); PropertyInfo[] fields = type.GetProperties(); foreach (var field in fields) { if (field.GetMethod.ReturnType.IsGenericList()) { continue; } foreach (var alteredField in Fields) { if (alteredField.Name == field.Name) { //if this is enum, choose appropriate field and set it to object if (alteredField.EnumTypes != null && alteredField.EnumTypes.Length != 0) { field.SetValue(JewelryToEdit, Convert.ChangeType(GetEnumMemberValueByName(alteredField.ChosenEnumType, alteredField.FieldType), alteredField.FieldType)); } else { if (field.GetType().IsValueType) { field.SetValue(JewelryToEdit, Convert.ChangeType(double.Parse(alteredField.Value), alteredField.FieldType)); } else { field.SetValue(JewelryToEdit, Convert.ChangeType(alteredField.Value, alteredField.FieldType)); } } break; } } } JewelryToEdit.Materials = EditableJewelryMaterials; } catch (Exception ex) { MessageBox.Show($"Wrong data was provided. Can't add that material. Detailed Error: {ex.Message}"); } finally { IsEditingJewelryAllowed = true; } }
private void ViewInfo(object parameter) { JewelryDescription = JewelryToEdit.GetDescription(); }