/** * Check if a field has changed between Edit State (in DB or not) and Save State (in DB) */ private Boolean hasFieldsChanged() { Boolean result = false; Reflectionner reflec = new Reflectionner(); var dico = reflec.ReadObject <Address>(currentAddress); if (dico["Id"].Equals(0)) //Entity is not in database { dico.Remove("Id"); foreach (var item in dico) { if (item.Key != "StreetNumber" && item.Value != null) { result = true; break; } } } else //Fields not empty, but entity loaded from db { if (addressManager.ChangeTracker.HasChanges()) { result = true; } } return(result); }
private async void BtnNewAddress_Click(object sender, RoutedEventArgs e) { addressManager.DbSetT.Attach(currentAddress); Address loadedAddress = await addressManager.Get(currentAddress.Id); currentAddress = this.addressAdmin.UCAddress.Address; // Check if we have filled props Reflectionner reflec = new Reflectionner(); Boolean areFieldsdEmpty = true; var dico = reflec.ReadObject <Address>(currentAddress); Dictionary <String, Object> dico2 = null; if (loadedAddress != null) { dico2 = reflec.ReadObject <Address>(loadedAddress); } if (dico["Id"].Equals(0)) { dico.Remove("Id"); foreach (var item in dico) { if (item.Value != null) { areFieldsdEmpty = false; break; } } } else //Fields not empty, but entity loaded from db { foreach (var item in dico) { if (item.Key != "Id" & item.Value != dico2[item.Key]) { areFieldsdEmpty = false; break; } } } if (!areFieldsdEmpty) { MessageBoxResult mbr = MessageBox.Show("You have filled some data. Do you want to wipe them all ? (cannot be undone)", "Confirm", MessageBoxButton.OKCancel, MessageBoxImage.Exclamation); if (mbr == MessageBoxResult.OK) { this.ResetAddress(); } } else { this.ResetAddress(); } }
public EntityGeneratorFakerTyper() { reflectionner = new Reflectionner(); if (typeof(T).Name.Equals(TypeEnum.LIST)) { var type = Type.GetType(typeof(List <T>).AssemblyQualifiedName); var list = (List <T>)Activator.CreateInstance(type); itemProperties = reflectionner.ReadClass <T>(); } else { itemProperties = reflectionner.ReadClass <T>(); } }