//-----------------------------------------------------------------------------------------------------------------------------------------------------

        private FieldMember[] DefinePrimaryConstructor(Func <MethodMember, AttributeWriter> attributes, params object[] argumentNameTypePairs)
        {
            if ((argumentNameTypePairs.Length % 2) != 0)
            {
                throw new ArgumentException("argumentNameTypePairs must be of even length");
            }

            var argumentNames = new string[argumentNameTypePairs.Length / 2];
            var fieldNames    = new string[argumentNameTypePairs.Length / 2];
            var fieldTypes    = new Type[argumentNameTypePairs.Length / 2];

            for (int i = 0; i < fieldNames.Length; i++)
            {
                var name = (string)argumentNameTypePairs[i * 2];

                argumentNames[i] = name.Substring(0, 1).ToLower() + name.Substring(1);
                fieldNames[i]    = "m_" + name;
                fieldTypes[i]    = (Type)argumentNameTypePairs[i * 2 + 1];
            }

            var constructorMember = new ConstructorMember(OwnerClass, ConstructorMethodFactory.InstanceConstructor(OwnerClass, fieldTypes, argumentNames));

            OwnerClass.AddMember(constructorMember);

            var fieldMembers      = fieldTypes.Select((type, index) => DefineField(fieldNames[index], type, isStatic: false)).ToArray();
            var constructorWriter = new PrimaryConstructorWriter(constructorMember, fieldMembers);

            constructorWriter.AddAttributes(attributes);

            return(fieldMembers);
        }
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        private ConstructorMember DefineConstructor(ConstructorMethodFactory factory)
        {
            var constructorMember = new ConstructorMember(OwnerClass, factory);

            OwnerClass.AddMember(constructorMember);
            return(constructorMember);
        }
Esempio n. 3
0
        private async void CreateBt_Click(object sender, RoutedEventArgs e)
        {
            client = new APIClient();
            try
            {
                var regex1 = new Regex("[0-9]+$");
                var regex2 = new Regex("[a-zA-Z]+$");
                if (!regex2.IsMatch(SurnameTb.Text))
                {
                    throw new ValidationFailureException("Surname Invalid.");
                }
                else if (!regex2.IsMatch(GivenNameTb.Text))
                {
                    throw new ValidationFailureException("Given Name Invalid.");
                }
                else if (!regex1.IsMatch(PhoneTb.Text))
                {
                    throw new ValidationFailureException("Invalid Phone Number.");
                }
                else
                {
                    OwnerClass newOwner = new OwnerClass()
                    {
                        OwnerID = await client.GetOwnerID(),

                        Surname   = SurnameTb.Text,
                        GivenName = GivenNameTb.Text,
                        Phone     = Int32.Parse(PhoneTb.Text)
                    };
                    await client.CreateOwner(newOwner);
                }
            }
            catch (ValidationFailureException ex)
            {
                MessageBox.Show("Validation Failed!");
                logger.Debug("Validation Failure Exception");
            }



            SurnameTb.Text   = null;
            GivenNameTb.Text = null;
            PhoneTb.Text     = null;

            owner = await client.GetOwners();

            ownersDG.ItemsSource = owner;
        }
Esempio n. 4
0
        private async void ownersDG_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            client = new APIClient();

            ownerssssss = (OwnerClass)ownersDG.SelectedItem;
            if (ownerssssss != null)
            {
                SurnameTb.Text   = ownerssssss.Surname;
                GivenNameTb.Text = ownerssssss.GivenName;
                PhoneTb.Text     = ownerssssss.Phone.ToString();
            }

            CreateBt.IsEnabled = false;
            DeleteBt.IsEnabled = true;
            UpdateBt.IsEnabled = true;

            //owner = await client.GetOwners();
        }
Esempio n. 5
0
        ////-----------------------------------------------------------------------------------------------------------------------------------------------------

        //public HappilField<TField> FindField<TField>(string name)
        //{
        //	return OwnerClass.FindMember<HappilField<TField>>(name);
        //}

        ////-----------------------------------------------------------------------------------------------------------------------------------------------------

        //public HappilProperty<TProperty> FindProperty<TProperty>(string name)
        //{
        //	return OwnerClass.FindMember<HappilProperty<TProperty>>(name);
        //}

        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public FieldAccessOperand <TProperty> BackingFieldOf <TProperty>(PropertyInfo declaration)
        {
            return(OwnerClass.GetPropertyBackingField(declaration).AsOperand <TProperty>());
        }
Esempio n. 6
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public Field <T> DependencyField <T>(string name)
        {
            var field = OwnerClass.RegisterDependency <T>(() => DefineField <T>(name, isStatic: false));

            return(field.AsOperand <T>());
        }