Example #1
0
        private async Task GetProductType_OnClicked(object sender, EventArgs e)
        {
            var page = new ProductTypes();

            page.ProductTypesListView.ItemSelected += async(source, args) =>
            {
                var type = args.SelectedItem as ProductType;
                if (type != null)
                {
                    ProductType.Text = type.Name.ToString();
                }
                await Navigation.PopAsync();
            };

            await Navigation.PushAsync(page);
        }
        private async Task Button_OnClicked(object sender, EventArgs e)
        {
            var respone = await DisplayActionSheet("ACTIONS", "Cancel", null /*, "Edit"*/, "Delete");

            if (!respone.Equals("Cancel"))
            {
                if (respone.Equals("Delete"))
                {
                    var delete = await DisplayAlert(respone + "?", "Are you want to remove this post?", "Yes", "No");

                    if (delete)
                    {
                        var response = await _service.DeletePost(_product);

                        if (response)
                        {
                            await DisplayAlert("Success",
                                               "Post deleted successfully", "Ok");

                            await Navigation.PopAsync();
                        }

                        else
                        {
                            await DisplayAlert("Failed",
                                               "Failed to delete post. The item might be involved in other transactions.",
                                               "Ok");
                        }
                    }
                }

                else
                {
                    var page = new EditProduct(_product);
                    page.TakePicture.Clicked += async(source, args) =>
                    {
                        _mediafile = await _appFunctions.TakePicture();

                        if (_mediafile == null)
                        {
                            await DisplayAlert("Error!", "Could not take picture.", "OK");
                        }

                        else
                        {
                            page.FeatureImage.Source = _mediafile.Path;
                        }
                    };

                    page.BrowsePicture.Clicked += async(source, args) =>
                    {
                        _mediafile = await _appFunctions.BrowsePicture();

                        if (_mediafile == null)
                        {
                            await DisplayAlert("Error!", "Could not get picture.", "OK");
                        }

                        else
                        {
                            page.FeatureImage.Source = _mediafile.Path;
                        }
                    };

                    page.GetProductTypes.Clicked += async(source, args) =>
                    {
                        var typesPage = new ProductTypes();
                        typesPage.ProductTypesListView.ItemSelected += async(source2, args2) =>
                        {
                            var type = args2.SelectedItem as ProductType;
                            if (type != null)
                            {
                                page.PType.Text = type.Name.ToString();
                            }
                            await Navigation.PopAsync();
                        };

                        await Navigation.PushAsync(typesPage);
                    };

                    page.GetPackagings.Clicked += async(source, args) =>
                    {
                        var typesPage = new PackagingTypes();
                        typesPage.PackagingTypesListView.ItemSelected += async(source2, args2) =>
                        {
                            var type = args2.SelectedItem as PackagingType;
                            if (type != null)
                            {
                                page.PPackaging.Text = type.Name.ToString();
                            }
                            await Navigation.PopAsync();
                        };

                        await Navigation.PushAsync(typesPage);
                    };

                    page.SaveChanges.Clicked += async(source, args) =>
                    {
                        if (String.IsNullOrWhiteSpace(page.PDescription.Text) ||
                            String.IsNullOrWhiteSpace(page.PCountry.Text) ||
                            String.IsNullOrWhiteSpace(page.PCity.Text) ||
                            Convert.ToDouble(page.PQuantity.Text) <= 0 ||
                            _mediafile == null)
                        {
                            await DisplayAlert(null, "Please complete all the fields and set a new product picture.", "Ok");
                        }

                        else
                        {
                            _product.ProductType       = page.PType.Text;
                            _product.TransactionRating = page.PRating.Value;
                            _product.Description       = page.PDescription.Text;
                            _product.Country           = page.PCountry.Text;
                            _product.City           = page.PCity.Text;
                            _product.Quantity       = Convert.ToDouble(page.PQuantity.Text);
                            _product.CostPerKg      = Convert.ToDouble(page.PPrice.Text);
                            _product.Packaging      = page.PPackaging.Text;
                            _product.ProductPicture = _mediafile.Path;
                            _product.File           = _mediafile;


                            var response = await _service.AddNewPost(_product);

                            if (response)
                            {
                                await DisplayAlert("Success",
                                                   "Post edited successfully", "Ok");

                                await Navigation.PopAsync();
                            }

                            else
                            {
                                await DisplayAlert("Failed", "Failed to edit post.", "Ok");
                            }

                            await Navigation.PopAsync();
                        }
                    };

                    await Navigation.PushAsync(page);
                }
            }
        }