예제 #1
0
        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; }
        }
예제 #2
0
 private void ViewInfo(object parameter)
 {
     JewelryDescription = JewelryToEdit.GetDescription();
 }