Example #1
0
        public async void SendReview()
        {
            //TEST INTERNET CONNECTTION
            var httpClient = new HttpClient();

            try
            {
                var testInternet = await httpClient.GetStringAsync(ServerDatabase.localhost + "store/getstorebyid/test");
            }
            catch (Exception ex)
            {
                await App.Current.MainPage.DisplayAlert("Error", "Action fail, check your internet connection and try again!", "OK");

                return;
            }

            using (UserDialogs.Instance.Loading("Sending.."))
            {
                order.Review = Review;
                DataUpdater.ReceiveOder(order);
                //call api update orderbill
                await httpClient.PostAsJsonAsync(ServerDatabase.localhost + "orderbill/update", order);

                //reload list orders view
                (TabBarCustomer.GetInstance().Children.ElementAt(3).BindingContext as ListOrdersViewModel).LoadData();

                await PopupNavigation.Instance.PopAllAsync();
            }

            MessageService.Show("Received successfully", 0);
            //PUSH NOTI
            string datas = PushNotificationService.ConvertDataWrireReview(order);

            PushNotificationService.Push(NotiNumber.SendReview, datas, false);
        }
        public async static void CancelOrderAction(string data)
        {
            OrderBill canceledOder = JsonConvert.DeserializeObject <OrderBill>(data);

            //fetch data products in server
            await ServerDatabase.FetchProductData();

            //xóa orderbill
            DataUpdater.DeleteOrderBillByID(canceledOder.IDOrderBill);

            //update list order+số lượng product cho cửa hàng bị hủy order
            if (Infor.IDStore == canceledOder.IDStore)
            {
                (TabbarStoreManager.GetInstance().Children.ElementAt(1).BindingContext as ProductManagerViewModel).LoadData(true);
                (TabbarStoreManager.GetInstance().Children.ElementAt(2).BindingContext as OrderManagerViewModel).LoadData();
            }

            if (Infor.IDUser == canceledOder.IDUser)
            {
                (TabBarCustomer.GetInstance().Children.ElementAt(3).BindingContext as ListOrdersViewModel).LoadData();
            }

            //update số lượng product cho các user khác (gồm cả user là store bị hủy)
            var ShowStoreVM = ShowStoreView.GetInstance().BindingContext as ShowStoreViewModel;

            if (ShowStoreVM != null && ShowStoreVM.IDStore == canceledOder.IDStore)
            {
                ShowStoreVM.LoadData(true);
            }
        }
Example #3
0
        protected async override void OnAppearing()
        {
            AppDrawer.Destroy();
            TabBarCustomer.Destroy();
            TabbarStoreManager.Destroy();
            UserSettingView.Destroy();
            User user = dataProvider.GetUserByIDUser(Infor.IDUser);

            user.IsLogined = 0;


            Preferences.Set("IDLogin", "");
            //OneSignal.Current.SendTag("IsLogined", "0");

            //TEST INTERNET CONNECTTION
            var httpClient = new HttpClient();

            try
            {
                var testInternet = await httpClient.GetStringAsync(ServerDatabase.localhost + "store/getstorebyid/test");

                OneSignal.Current.SetExternalUserId("");
                await httpClient.PostAsJsonAsync(ServerDatabase.localhost + "user/update", user);
            }
            catch (Exception ex)
            {
            }

            App.Current.MainPage = new NavigationPage(LoginView.GetInstance());
        }
Example #4
0
        protected override bool OnBackButtonPressed()
        {
            int x = App.Current.MainPage.Navigation.NavigationStack.Count;

            if (x == 1)
            {
                if (appShell.CurrentItem == flyoutShopping)
                {
                    var tabbar = TabBarCustomer.GetInstance();
                    tabbar.GoHome();
                }
                else
                if (appShell.CurrentItem == flyoutStore)
                {
                    var tabbar = TabbarStoreManager.GetInstance();
                    tabbar.GoHome();
                }
                else
                {
                    return(true);
                }
            }
            else
            {
                base.OnBackButtonPressed();
            }

            return(true);
        }
        public static void UpdateStoreAction(string data)
        {
            Store store = JsonConvert.DeserializeObject <Store>(data);

            DataUpdater.UpdateStore(store);
            //load lại list store view cho tất cả user
            (TabBarCustomer.GetInstance().Children.ElementAt(1).BindingContext as ListStoresViewModel).LoadData();
            (TabbarStoreManager.GetInstance().Children.ElementAt(0).BindingContext as StoreDashBoardViewModel).LoadData();
        }
        public static void SendReviewAction(string data)
        {
            OrderBill order = JsonConvert.DeserializeObject <OrderBill>(data);

            DataUpdater.UpdateOrderBill(order);

            (TabBarCustomer.GetInstance().Children.ElementAt(3).BindingContext as ListOrdersViewModel).LoadData();
            (TabbarStoreManager.GetInstance().Children.ElementAt(0).BindingContext as StoreDashBoardViewModel).LoadData();
            (TabbarStoreManager.GetInstance().Children.ElementAt(3).BindingContext as ReviewManagerViewModel).LoadData();
        }
        public static void DeliverOrderAction(string data)
        {
            OrderBill order = JsonConvert.DeserializeObject <OrderBill>(data);

            DataUpdater.UpdateOrderBill(order);
            //Chỉ load lại màn hình list order cho user là người đặt order
            if (order.IDUser != Infor.IDUser)
            {
                return;
            }
            (TabBarCustomer.GetInstance().Children.ElementAt(3).BindingContext as ListOrdersViewModel).LoadData();
        }
Example #8
0
        public void ChooseFruit()
        {
            TypeItem typeItem = new TypeItem
            {
                productType = dataProvider.GetTypeByID("1"),
                isChosen    = false
            };
            var Tabbar      = TabBarCustomer.GetInstance();
            var ListStoreVM = (TabBarCustomer.GetInstance().Children.ElementAt(1).BindingContext as ListStoresViewModel);

            ListStoreVM.ResetChooseType();
            ListStoreVM.ChooseType(typeItem);
            Tabbar.CurrentPage = Tabbar.Children[1];
        }
        public async void ShowReviewPopup(OrderBillItem orderItem)
        {
            if (orderItem.Order.State == OrderState.Waiting)
            {
                await PopupNavigation.Instance.PopAsync();

                (TabBarCustomer.GetInstance().Children.ElementAt(3).BindingContext as ListOrdersViewModel).DeleteOrder(orderItem.Order);

                return;
            }
            var ReviewPopup = new ReviewStorePopupView();

            ReviewPopup.BindingContext = new ReviewStorePopupViewModel(orderItem.Order);
            await PopupNavigation.Instance.PushAsync(ReviewPopup);
        }
        public static void AnswerFeedbackAction(string data)
        {
            OrderBill order = JsonConvert.DeserializeObject <OrderBill>(data);

            DataUpdater.UpdateOrderBill(order);

            //Update lại cho tất cả user: list feedback của cửa hàng đó nếu họ đang xem
            var ShowStoreVM = ShowStoreView.GetInstance().BindingContext as ShowStoreViewModel;

            if (ShowStoreVM != null && ShowStoreVM.IDStore == order.IDStore)
            {
                ShowStoreVM.LoadData(true);
            }
            //update lại list orders cho user là người mua của order được trả lời feedback
            (TabBarCustomer.GetInstance().Children.ElementAt(3).BindingContext as ListOrdersViewModel).LoadData();
        }
        public async void AddToCart()
        {
            List <Product> changedProducts = new List <Product>();
            //clone +insert
            List <Product> cloneProducts = new List <Product>();

            for (int i = 0; i < _saveProducts.Count; i++)
            {
                if (_saveProducts[i].Product.QuantityOrder > 0)
                {
                    _saveProducts[i].Product.SetQuantityInventory(_saveProducts[i].Product.QuantityInventory - _saveProducts[i].Product.QuantityOrder);
                    Product cloneProduct = new Product(_saveProducts[i].Product);
                    _saveProducts[i].Product.SetQuantityOrder(0);
                    changedProducts.Add(_saveProducts[i].Product);
                    cloneProduct.IDSourceProduct = _saveProducts[i].Product.IDProduct;
                    cloneProduct.IDCart          = Infor.IDUser;
                    cloneProduct.State           = ProductState.InCart;
                    cloneProducts.Add(cloneProduct);
                }
            }

            //genid for cloneproducts
            DateTime date = DateTime.Now;

            for (int i = 0; i < cloneProducts.Count; i++)
            {
                string id = "Product_";
                id += date.ToString("HHmmss");
                id += i.ToString();
                cloneProducts[i].IDProduct = id;
            }
            //update data product
            DataUpdater.UpdateProduct(changedProducts);
            List <Product> ExistProducts = new List <Product>();
            List <Product> NewProducts   = new List <Product>();

            foreach (Product product in cloneProducts)
            {
                if (dataProvider.CheckExistInMyCart(product))
                {
                    ExistProducts.Add(product);
                }
                else
                {
                    NewProducts.Add(product);
                }
            }
            DataUpdater.UpdateExistProductIncart(ExistProducts);
            DataUpdater.InsertProduct(NewProducts);

            ExistProducts = dataProvider.GetExistProducInCarttByListProduct(ExistProducts);

            //call api update server database
            foreach (Product product in changedProducts)
            {
                var httpClient = new HttpClient();
                await httpClient.PostAsJsonAsync(ServerDatabase.localhost + "product/update", product);
            }

            foreach (Product product in ExistProducts)
            {
                var httpClient = new HttpClient();
                await httpClient.PostAsJsonAsync(ServerDatabase.localhost + "product/update", product);
            }



            //call api insert server database
            foreach (Product product in NewProducts)
            {
                var httpClient = new HttpClient();
                await httpClient.PostAsJsonAsync(ServerDatabase.localhost + "product/insert", product);
            }

            //update UI CART
            var cartVM = TabBarCustomer.GetInstance().Children[2].BindingContext as CartViewModel;

            cartVM.LoadData();

            //PUSH NOTI
            string datas = PushNotificationService.ConvertDataAddToCart(changedProducts);

            PushNotificationService.Push(NotiNumber.AddToCart, datas, true);
        }
        public void GoHome()
        {
            var tabbar = TabBarCustomer.GetInstance();

            tabbar.CurrentPage = tabbar.Children[0];
        }
Example #13
0
        private AppDrawer()
        {
            InitializeComponent();

            Shell.SetTabBarIsVisible(this, false);
            Shell.SetNavBarIsVisible(this, false);
            //Item CUSTOMER
            var shoppingTabs = new ShellContent()
            {
                Content = TabBarCustomer.GetInstance(),
                Title   = "Shopping",
                Icon    = "drawercart"
            };

            tabShopping.Items.Add(shoppingTabs);
            flyoutShopping.Items.Add(tabShopping);
            appShell.Items.Add(flyoutShopping);

            //Item STORE

            var storeTabs = new ShellContent()
            {
                Content = TabbarStoreManager.GetInstance(),
                Title   = "Your store",
                Icon    = "drawerstore"
            };

            tabStore.Items.Add(storeTabs);
            flyoutStore.Items.Add(tabStore);
            appShell.Items.Add(flyoutStore);

            //Item SETTING

            var settingTab = new ShellContent()
            {
                Content = UserSettingView.GetInstance(),
                Title   = "Setting",
                Icon    = "drawersetting"
            };

            tabSetting.Items.Add(settingTab);
            flyoutUserSetting.Items.Add(tabSetting);
            appShell.Items.Add(flyoutUserSetting);

            //Item LOGOUT

            var logoutTab = new ShellContent()
            {
                Content = new LogoutView(),
                Title   = "Logout",
                Icon    = "flatlogout"
            };

            tabLogout.Items.Add(logoutTab);
            flyoutLogout.Items.Add(tabLogout);

            appShell.Items.Add(flyoutLogout);

            //appShell.CurrentItem.PropertyChanged += CurrentItem_PropertyChanged;
            flyoutShopping.PropertyChanged    += FlyoutShopping_PropertyChanged;
            flyoutStore.PropertyChanged       += FlyoutStore_PropertyChanged;
            flyoutUserSetting.PropertyChanged += FlyoutUserSetting_PropertyChanged;

            DataProvider dataProvider = DataProvider.GetInstance();
            User         user         = dataProvider.GetUserByIDUser(Infor.IDUser);

            this.BindingContext = user;
        }
        public void GoCart()
        {
            var Tabbar = TabBarCustomer.GetInstance();

            Tabbar.CurrentPage = Tabbar.Children[2];
        }
        public async void SendOrder()
        {
            //TEST INTERNET CONNECTTION
            var    httpClient = new HttpClient();
            string x          = "";

            try
            {
                var testInternet = await httpClient.GetStringAsync(ServerDatabase.localhost + "store/getstorebyid/test");

                x = testInternet;
            }
            catch (Exception ex)
            {
                var stack = App.Current.MainPage.Navigation.NavigationStack;
                var page  = stack[stack.Count - 1];
                await page.DisplayAlert("Error", "Action fail, check your internet connection and try again!", "OK");

                return;
            }

            using (UserDialogs.Instance.Loading("wait.."))
            {
                var result = await httpClient.PostAsJsonAsync(ServerDatabase.localhost + "orderbill/insert", OrderItem.Order);

                var a = await result.Content.ReadAsStringAsync();

                JObject rss = JObject.Parse(a);

                var resultAPI = rss["result"];
                if (resultAPI.ToString() == "fail")
                {
                    return;
                }


                foreach (Product product in OrderItem.AddedProducts)
                {
                    product.State       = ProductState.InBill;
                    product.IDOrderBill = OrderItem.Order.IDOrderBill;
                    await httpClient.PostAsJsonAsync(ServerDatabase.localhost + "product/update", product);
                }
            }

            //update orderbill trong data local
            DataUpdater.InsertOrderBill(OrderItem.Order);
            //update products trong bill ở data local
            DataUpdater.UpdateProduct(OrderItem.AddedProducts);

            //update UI CART
            var cartVM = TabBarCustomer.GetInstance().Children[2].BindingContext as CartViewModel;

            cartVM.LoadData();
            //update UI Orders
            var ordersVM = TabBarCustomer.GetInstance().Children[3].BindingContext as ListOrdersViewModel;

            ordersVM.LoadData();

            //PUSH NOTI
            string datas = PushNotificationService.ConvertDataInsertOrderBill(OrderItem.Order);

            PushNotificationService.Push(NotiNumber.MakeBillForStore, datas, false);
            PushNotificationService.Push(NotiNumber.MakeBillForOther, datas, true);

            hasSent = true;

            //await PopupNavigation.Instance.PushAsync(successPopup);
            await App.Current.MainPage.Navigation.PopAsync();
        }
Example #16
0
        public void GoOrder()
        {
            var Tabbar = TabBarCustomer.GetInstance();

            Tabbar.CurrentPage = Tabbar.Children[3];
        }