private async void ListView0_ItemTapped(object sender, ItemTappedEventArgs e)
        {
            await ModalUpdate.Show();

            if (FurnitureUpdate == null)
            {
                viewModel.DateNow           = DateTime.Now;
                viewModel.PromotionFromDate = DateTime.Now;
                viewModel.PromotionToDate   = DateTime.Now;
            }
            FurnitureUpdate = e.Item as FurnitureProduct;
        }
        public async void OnBtnSavePromotion_Click(object sender, EventArgs e)
        {
            if (viewModel.PromotionPrice == null)
            {
                await Shell.Current.DisplayAlert(Language.thong_bao, Language.vui_long_nhap_gia_giam, Language.dong);
            }
            else
            {
                FurnitureProduct product = new FurnitureProduct();
                product.Name             = FurnitureUpdate.Name;
                product.ParentCategoryId = FurnitureUpdate.ParentCategoryId;
                product.CategoryId       = FurnitureUpdate.CategoryId;
                product.CreatedById      = Guid.Parse(UserLogged.Id);
                product.Price            = FurnitureUpdate.Price;
                product.Status           = FurnitureUpdate.Status;
                product.Model            = FurnitureUpdate.Model;
                product.Origin           = FurnitureUpdate.Origin;
                product.Guarantee        = FurnitureUpdate.Guarantee;
                product.Description      = FurnitureUpdate.Description;
                product.Address          = FurnitureUpdate.Address;

                product.Category   = FurnitureUpdate.Category;
                product.Company    = FurnitureUpdate.Company;
                product.CompanyId  = FurnitureUpdate.CompanyId;
                product.AvatarUrl  = FurnitureUpdate.AvatarUrl;
                product.CreatedBy  = FurnitureUpdate.CreatedBy;
                product.DistrictId = FurnitureUpdate.DistrictId;
                product.Images     = FurnitureUpdate.Images;
                product.Model      = FurnitureUpdate.Model;
                product.ProvinceId = FurnitureUpdate.ProvinceId;
                product.Street     = FurnitureUpdate.Street;
                product.WardId     = FurnitureUpdate.WardId;
                product.Videos     = FurnitureUpdate.Videos;

                product.ProductStatus     = FurnitureUpdate.ProductStatus;
                product.IsPromotion       = true;
                product.PromotionFromDate = viewModel.PromotionFromDate;
                product.PromotionToDate   = viewModel.PromotionToDate;
                product.PromotionPrice    = viewModel.PromotionPrice;



                ApiResponse apiResponse = await ApiHelper.Post($"{ApiRouter.FURNITUREPRODUCT_ADD_UPDATE}", product, true);

                if (apiResponse.IsSuccess)
                {
                    await ModalUpdate.Hide();

                    viewModel.PromotionFromDate = DateTime.Now;
                    viewModel.PromotionToDate   = DateTime.Now;
                    viewModel.PromotionPrice    = null;
                    await viewModel.LoadOnRefreshCommandAsync();

                    ToastMessageHelper.ShortMessage(Language.dang_thanh_cong);
                    MessagingCenter.Send <PromotionPage>(this, "AddProduct");
                    await ModalPickProduct.Hide();
                }
                else
                {
                    ToastMessageHelper.ShortMessage(apiResponse.Message);
                }
            }
        }
Exemplo n.º 3
0
        private async void Save_Clicked(object sender, EventArgs e)
        {
            if (viewModel.ParentCategory == null)
            {
                await DisplayAlert("", Language.chon_nhom_danh_muc, Language.dong);

                return;
            }

            if (viewModel.ChildCategory == null)
            {
                await DisplayAlert("", Language.chon_danh_muc, Language.dong);

                return;
            }

            if (string.IsNullOrWhiteSpace(viewModel.AddProductModel.Name))
            {
                await DisplayAlert("", Language.nhap_ten_noi_that, Language.dong);

                return;
            }

            if (!viewModel.AddProductModel.Price.HasValue)
            {
                await DisplayAlert("", Language.nhap_gia_san_pham, Language.dong);

                return;
            }

            if (viewModel.AddProductModel.IsPromotion == true)
            {
                if (viewModel.AddProductModel.PromotionFromDate == null)
                {
                    await DisplayAlert("", Language.vui_long_chon_thoi_gian, Language.dong);

                    return;
                }
                if (viewModel.AddProductModel.PromotionToDate == null)
                {
                    await DisplayAlert("", Language.vui_long_chon_thoi_gian, Language.dong);

                    return;
                }
                if (viewModel.AddProductModel.PromotionPrice == null)
                {
                    await DisplayAlert("", Language.vui_long_nhap_gia_giam, Language.dong);

                    return;
                }
            }

            if (viewModel.AddProductModel.Province == null)
            {
                await DisplayAlert("", Language.vui_long_chon_tinh_thanh, Language.dong);

                return;
            }
            if (viewModel.AddProductModel.District == null)
            {
                await DisplayAlert("", Language.vui_long_chon_quan_huyen, Language.dong);

                return;
            }
            if (viewModel.AddProductModel.Ward == null)
            {
                await DisplayAlert("", Language.vui_long_chon_phuong_xa, Language.dong);

                return;
            }



            if (viewModel.Media.Count < 1)
            {
                await DisplayAlert("", Language.chon_hinh_anh_cho_san_pham, Language.dong);

                return;
            }


            loadingPopup.IsVisible = true;

            FurnitureProduct product = new FurnitureProduct();

            product.Name             = viewModel.AddProductModel.Name;
            product.ParentCategoryId = viewModel.ParentCategory.Id;
            product.CategoryId       = viewModel.ChildCategory.Id;
            product.CreatedById      = Guid.Parse(UserLogged.Id);
            product.Price            = viewModel.AddProductModel.Price;
            product.Status           = viewModel.AddProductModel.Status;
            product.Model            = viewModel.AddProductModel.Model;
            product.Origin           = viewModel.AddProductModel.Origin;
            product.Guarantee        = viewModel.AddProductModel.Guarantee;
            product.Description      = viewModel.AddProductModel.Description;
            product.CreatedDate      = viewModel.AddProductModel.CreatedDate;

            product.ProductStatus = 0;
            product.IsPromotion   = viewModel.AddProductModel.IsPromotion;
            if (viewModel.AddProductModel.IsPromotion == true)
            {
                product.PromotionFromDate = viewModel.AddProductModel.PromotionFromDate;
                product.PromotionToDate   = viewModel.AddProductModel.PromotionToDate;
                product.PromotionPrice    = viewModel.AddProductModel.PromotionPrice;
            }


            if (viewModel.AddProductModel.Province != null)
            {
                product.ProvinceId = viewModel.AddProductModel.Province.Id;
            }
            if (viewModel.AddProductModel.District != null)
            {
                product.DistrictId = viewModel.AddProductModel.District.Id;
            }
            if (viewModel.AddProductModel.Ward != null)
            {
                product.WardId = viewModel.AddProductModel.Ward.Id;
            }

            product.Street  = viewModel.AddProductModel.Street;
            product.Address = viewModel.AddProductModel.Address;

            string[] imageList = new string[viewModel.Media.Count];
            for (int i = 0; i < viewModel.Media.Count; i++)
            {
                var item = viewModel.Media[i];
                // chua upload. upload roi link = null
                if (string.IsNullOrEmpty(item.Path) == false) // co link la co chon tu dien thoai.
                {
                    imageList[i] = $"{Guid.NewGuid().ToString()}.jpg";
                    var stream  = new MemoryStream(File.ReadAllBytes(item.Path));
                    var content = new StreamContent(stream);
                    content.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
                    {
                        Name     = "files" + i,
                        FileName = imageList[i]
                    };
                    MultipartFormDataContent form = new MultipartFormDataContent();
                    form.Add(content);
                    var response = await BsdHttpClient.Instance().PostAsync(ApiRouter.FURNITUREPRODUCT_IMAGE_UPLOAD, form);

                    if (!response.IsSuccessStatusCode)
                    {
                        await DisplayAlert("", Language.khong_the_upload_hinh_anh, Language.dong);

                        loadingPopup.IsVisible = false;
                        return;
                    }
                }
                else
                {
                    imageList[i] = item.PreviewPath.Replace(Configuration.ApiConfig.CloudStorageApiCDN + "/furniture/product/", "");
                }
            }

            product.AvatarUrl = imageList[0];
            product.Images    = string.Join(",", imageList);

            if (chkCompanyAddress.IsChecked && viewModel.Company != null) //sp cty
            {
                product.CompanyId = viewModel.Company.Id;
            }

            //save
            ApiResponse apiResponse = null;

            if (_productId == Guid.Empty)//add
            {
                apiResponse = await ApiHelper.Post(ApiRouter.FURNITUREPRODUCT_ADD_UPDATE, product, true);
            }
            else//upd
            {
                product.Id  = _productId;
                apiResponse = await ApiHelper.Put($"{ApiRouter.FURNITUREPRODUCT_ADD_UPDATE}/update", product, true);
            }

            if (apiResponse.IsSuccess)
            {
                var responseProduct = JsonConvert.DeserializeObject <FurnitureProduct>(apiResponse.Content.ToString());
                product.Id = responseProduct.Id;
                await Navigation.PopAsync();

                if (_productId == Guid.Empty)
                {
                    MessagingCenter.Send <AddProductPage, bool>(this, "AddProduct", (bool)viewModel.AddProductModel.IsPromotion);
                    ToastMessageHelper.ShortMessage(Language.dang_thanh_cong);
                }
                else
                {
                    MessagingCenter.Send <AddProductPage, FurnitureProduct>(this, "UpdateProduct", product);
                    ToastMessageHelper.ShortMessage(Language.luu_san_pham_thanh_cong);
                }
            }
            else
            {
                ToastMessageHelper.ShortMessage($"{Language.loi}, {apiResponse.Message}");
            }
            loadingPopup.IsVisible = false;
        }