예제 #1
0
        /**
         * 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);
        }
예제 #2
0
        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>();
            }
        }