/// <summary>
        /// Subscribes to "AddAcquaintance" messages
        /// </summary>
        void SubscribeToAddAcquaintanceMessages()
        {
            MessagingService.Current.Subscribe <Acquaintance>(MessageKeys.AddAcquaintance, async(service, acquaintance) =>
            {
                IsBusy = true;

                await _DataSource.AddItem(acquaintance);

                await FetchAcquaintances();

                IsBusy = false;
            });
        }
예제 #2
0
        /// <summary>
        /// Subscribes to "AddRecipe" messages
        /// </summary>
        void SubscribeToAddRecipeMessages()
        {
            MessagingService.Current.Subscribe <Recipe>(MessageKeys.AddRecipe, async(service, recipe) =>
            {
                IsBusy = true;

                await _DataSource.AddItem(recipe);

                await FetchRecipes();

                IsBusy = false;
            });
        }
        void Save()
        {
            if (string.IsNullOrWhiteSpace(_FirstNameField.Text) || string.IsNullOrWhiteSpace(_LastNameField.Text))
            {
                //set alert for executing the task
                var alert = new Android.App.AlertDialog.Builder(this);

                alert.SetTitle("Invalid name!");

                alert.SetMessage("An acquaintance must have both a first and last name.");

                alert.SetNegativeButton("OK", (senderAlert, args) => {
                    // an empty delegate body, because we just want to close the dialog and not take any other action
                });

                //run the alert in UI thread to display in the screen
                RunOnUiThread(() => {
                    alert.Show();
                });

                return;
            }

            if (!RequiredAddressFieldCombinationIsFilled)
            {
                //set alert for executing the task
                var alert = new Android.App.AlertDialog.Builder(this);

                alert.SetTitle("Invalid address!");

                alert.SetMessage("You must enter either a street, city, and state combination, or a postal code.");

                alert.SetNegativeButton("OK", (senderAlert, args) => {
                    // an empty delegate body, because we just want to close the dialog and not take any other action
                });

                //run the alert in UI thread to display in the screen
                RunOnUiThread(() => {
                    alert.Show();
                });

                return;
            }

            _Acquaintance.FirstName  = _FirstNameField.Text;
            _Acquaintance.LastName   = _LastNameField.Text;
            _Acquaintance.Company    = _CompanyField.Text;
            _Acquaintance.JobTitle   = _JobTitleField.Text;
            _Acquaintance.Phone      = _PhoneField.Text;
            _Acquaintance.Email      = _EmailField.Text;
            _Acquaintance.Street     = _StreetField.Text;
            _Acquaintance.City       = _CityField.Text;
            _Acquaintance.State      = _StateField.Text;
            _Acquaintance.PostalCode = _ZipField.Text;

            if (_IsNewAcquaintance)
            {
                _DataSource.AddItem(_Acquaintance);
            }
            else
            {
                _DataSource.UpdateItem(_Acquaintance);
            }

            OnBackPressed();
        }
예제 #4
0
        public override void ViewWillAppear(bool animated)
        {
            base.ViewWillAppear(animated);

            _FirstNameField.Text    = _Acquaintance?.FirstName;
            _LastNameField.Text     = _Acquaintance?.LastName;
            _CompanyNameField.Text  = _Acquaintance?.Company;
            _JobTitleField.Text     = _Acquaintance?.JobTitle;
            _PhoneNumberField.Text  = _Acquaintance?.Phone;
            _EmailAddressField.Text = _Acquaintance?.Email;
            _StreetField.Text       = _Acquaintance?.Street;
            _CityField.Text         = _Acquaintance?.City;
            _StateField.Text        = _Acquaintance?.State;
            _ZipField.Text          = _Acquaintance?.PostalCode;

            NavigationItem.RightBarButtonItem.Clicked += async(sender, e) =>
            {
                if (string.IsNullOrWhiteSpace(_FirstNameField.Text) || string.IsNullOrWhiteSpace(_LastNameField.Text))
                {
                    UIAlertController alert = UIAlertController.Create("Invalid name!", "A acquaintance must have both a first and last name.", UIAlertControllerStyle.Alert);

                    // cancel button
                    alert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));

                    UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(alert, true, null);
                }
                else if (!RequiredAddressFieldCombinationIsFilled)
                {
                    UIAlertController alert = UIAlertController.Create("Invalid address!", "You must enter either a street, city, and state combination, or a postal code.", UIAlertControllerStyle.Alert);

                    // cancel button
                    alert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));

                    UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(alert, true, null);
                }
                else
                {
                    if (_Acquaintance == null)
                    {
                        _Acquaintance = new Acquaintance();
                    }

                    _Acquaintance.FirstName  = _FirstNameField.Text;
                    _Acquaintance.LastName   = _LastNameField.Text;
                    _Acquaintance.Company    = _CompanyNameField.Text;
                    _Acquaintance.JobTitle   = _JobTitleField.Text;
                    _Acquaintance.Phone      = _PhoneNumberField.Text;
                    _Acquaintance.Email      = _EmailAddressField.Text;
                    _Acquaintance.Street     = _StreetField.Text;
                    _Acquaintance.City       = _CityField.Text;
                    _Acquaintance.State      = _StateField.Text;
                    _Acquaintance.PostalCode = _ZipField.Text;


                    if (_IsNew)
                    {
                        await _DataSource.AddItem(_Acquaintance);
                    }
                    else
                    {
                        await _DataSource.UpdateItem(_Acquaintance);
                    }

                    NavigationController.PopViewController(true);
                }
            };
        }