protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_modify);

            _carbs       = FindViewById <AppCompatSpinner>(Resource.Id.spinner);
            _foodCarbs   = FindViewById <AppCompatEditText>(Resource.Id.top_field);
            _middleField = FindViewById <AppCompatEditText>(Resource.Id.middle_field);
            _mealName    = FindViewById <AppCompatEditText>(Resource.Id.bottom_field);
            _mealType    = FindViewById <AppCompatSpinner>(Resource.Id.mealtype_spinner);


            _middleField.Visibility = ViewStates.Gone;

            AppCompatButton carbEditButton   = FindViewById <AppCompatButton>(Resource.Id.submit_button);
            AppCompatButton carbDeleteButton = FindViewById <AppCompatButton>(Resource.Id.delete_button);

            ArrayAdapter <MealType> adapter = new ArrayAdapter <MealType>(this, Android.Resource.Layout.SimpleSpinnerDropDownItem, (MealType[])Enum.GetValues(typeof(MealType)));

            _mealType.Adapter = adapter;

            _foodCarbs.Hint = "Food Carbs";
            _mealName.Hint  = "Meal Name";

            _foodCarbs.Visibility = ViewStates.Gone;
            _mealName.Visibility  = ViewStates.Gone;

            carbEditButton.Click += async delegate
            {
                carbEditButton.Enabled   = false;
                carbDeleteButton.Enabled = false;

                string status = await OnCarbEditButtonPressed();

                if (status == "Success")
                {
                    Finish();
                }
                else
                {
                    carbEditButton.Enabled   = true;
                    carbDeleteButton.Enabled = true;
                    RunOnUiThread(() =>
                    {
                        Toast.MakeText(this, status, ToastLength.Long).Show();
                    });
                }
            };

            carbDeleteButton.Click += async delegate
            {
                carbEditButton.Enabled   = false;
                carbDeleteButton.Enabled = false;

                string status = await Task.Run(() => OnCarbDeleteButtonPressed());

                if (status == "Success")
                {
                    Finish();
                }
                else
                {
                    carbEditButton.Enabled   = true;
                    carbDeleteButton.Enabled = true;
                    RunOnUiThread(() =>
                    {
                        Toast.MakeText(this, status, ToastLength.Long).Show();
                    });
                }
            };

            Android.Support.V7.Widget.Toolbar toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar_modify);
            toolbar.Title = "Modify A Carb Measurement";
            SetSupportActionBar(toolbar);

            DrawerLayout          drawer = FindViewById <DrawerLayout>(Resource.Id.drawer_layout);
            ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, Resource.String.navigation_drawer_open, Resource.String.navigation_drawer_close);

            drawer.AddDrawerListener(toggle);
            toggle.SyncState();

            _carbs.ItemSelected += delegate
            {
                _foodCarbs.Visibility = ViewStates.Visible;
                _mealName.Visibility  = ViewStates.Visible;

                PatientCarbohydrate pc = _carbs.SelectedItem.Cast <PatientCarbohydrate>();

                _foodCarbs.Text = pc.FoodCarbs.ToString();
                _mealName.Text  = pc.Meal.FoodName;
                _mealType.SetSelection((Enum.GetValues(typeof(MealType)).Cast <MealType>()).ToList().IndexOf(pc.Meal.MealTime));
            };

            NavigationView navigationView = FindViewById <NavigationView>(Resource.Id.nav_view_modify);

            navigationView.SetNavigationItemSelectedListener(this);
        }
Пример #2
0
        public async Task <string> OnCarbCreateButtonPressed()
        {
            if (!String.IsNullOrEmpty(_foodCarbs.Text))
            {
                if (int.Parse(_foodCarbs.Text) > 0 && int.Parse(_foodCarbs.Text) <= 1000)
                {
                    DateTime timeNow = DateTime.Now;

                    PatientData patientData = new PatientData();
                    Patient     patient;

                    try
                    {
                        patient = await _restService.ReadPatientAsync();
                    }
                    catch (Exception)
                    {
                        return("No Connection");
                    }

                    MealItem mealItem;

                    try
                    {
                        mealItem = await _restService.ReadMealItemAsync(_mealName.Text);


                        if (mealItem is null)
                        {
                            mealItem = new MealItem
                            {
                                FoodName = _mealName.Text,
                                Carbs    = Int32.Parse(_foodCarbs.Text),
                                MealTime = (MealType)Enum.Parse(typeof(MealType), _mealType.SelectedItem.ToString())
                            };
                            await _restService.CreateMealItemAsync(mealItem);

                            mealItem = await _restService.ReadMealItemAsync(_mealName.Text);
                        }
                    }
                    catch (Exception)
                    {
                        return("Invalid Food Name");
                    }

                    PatientCarbohydrate patientCarbohydrate = new PatientCarbohydrate()
                    {
                        UserId    = patient.UserId,
                        MealId    = mealItem.MealId,
                        Patient   = patient,
                        TimeOfDay = timeNow,
                        FoodCarbs = mealItem.Carbs
                    };

                    patientData.PatientCarbohydrates.Add(patientCarbohydrate);

                    await _restService.CreatePatientData(patientData);

                    return("Success");
                }
                else
                {
                    return("Invalid Range");
                }
            }
            else
            {
                return("Form Is Not Filled Out");
            }
        }