예제 #1
0
 public async void OnToDayDetail_Tapped(object sender, EventArgs e)
 {
     Grid stack = sender as Grid;
     TapGestureRecognizer tap  = stack.GestureRecognizers[0] as TapGestureRecognizer;
     LiquidationToDay     item = tap.CommandParameter as LiquidationToDay;
     await Navigation.PushAsync(new ToDayDetailPage(item.Id));
 }
        public async void InitUpdate(Guid LiquidationToDayId)
        {
            StackLayoutStatus.IsVisible = true;
            ApiResponse response = await ApiHelper.Get <LiquidationToDay>(ApiRouter.LIQUIDATIONTODAY_SAVE + "/" + LiquidationToDayId + "?IncludeProvince=true");

            if (response.IsSuccess)
            {
                LiquidationToDay liquidation = response.Content as LiquidationToDay;
                Title = liquidation.Name;
                viewModel.LiquidationModel = new AddLiquidationModel()
                {
                    Id                  = liquidation.Id,
                    Code                = liquidation.Code,
                    Name                = liquidation.Name,
                    Description         = liquidation.Description,
                    Price               = liquidation.Price,
                    PriceToDay          = liquidation.PriceToDay,
                    LiquidationCategory = viewModel.LiquidationCategories.SingleOrDefault(x => x.Id == liquidation.CategoryId),
                    Province            = liquidation.Province,
                    ProvinceId          = liquidation.ProvinceId,
                    District            = liquidation.District,
                    DistrictId          = liquidation.DistrictId,
                    Ward                = liquidation.Ward,
                    WardId              = liquidation.WardId,
                    Street              = liquidation.Street,
                    Address             = liquidation.Address
                };
                await Task.WhenAll(
                    viewModel.GetProvinceAsync(),
                    viewModel.GetDistrictAsync(),
                    viewModel.GetWardAsync()
                    );

                string[] imageList = liquidation.Images.Split(',');
                foreach (var image in imageList)
                {
                    viewModel.Media.Add(new MediaFile()
                    {
                        PreviewPath = ImageHelper.GetImageUrl("liquidation_today", image),
                    });
                }

                if (liquidation.Status == 3) // dang ban va het han.
                {
                    AddRePostToolbar();
                }
                LblStatus.Text         = liquidation.StatusFormat;
                loadingPopup.IsVisible = false;
            }
        }
        private async void Save_Clicked(object sender, EventArgs e)
        {
            if (viewModel.LiquidationModel.LiquidationCategory == null)
            {
                await DisplayAlert("", Language.vui_long_chon_danh_muc_san_pham, Language.dong);

                return;
            }
            if (string.IsNullOrWhiteSpace(viewModel.LiquidationModel.Name))
            {
                await DisplayAlert("", Language.vui_long_nhap_ten_san_pham, Language.dong);

                return;
            }

            if (!currentEntryGiaCu.Text.HasValue)
            {
                await DisplayAlert("", Language.vui_long_nhap_gia, Language.dong);

                return;
            }

            if (!currencyEntryGiaThanhLy.Text.HasValue)
            {
                await DisplayAlert("", Language.vui_long_cung_cap_thong_tin_gia_thanh_ly_trong_ngay, Language.dong);

                return;
            }

            if (viewModel.LiquidationModel.Province == null || viewModel.LiquidationModel.District == null || viewModel.LiquidationModel.Ward == null)
            {
                await DisplayAlert("", Language.vui_long_cung_cap_thong_tin_dia_chi, Language.dong);

                return;
            }

            if (viewModel.Media.Any() == false)
            {
                await DisplayAlert("", Language.vui_long_chon_hinh_anh_san_pham, Language.dong);

                return;
            }

            loadingPopup.IsVisible = true;

            bool ImageUploaded            = true;
            MultipartFormDataContent form = new MultipartFormDataContent();

            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]
                    };
                    form.Add(content);
                }
                else
                {
                    imageList[i] = item.PreviewPath.Replace(ApiConfig.CloudStorageApiCDN + "/liquidation_today/", "");
                }
            }

            // bat dau up hinh.
            if (viewModel.Media.Any(x => x.Path != null))
            {
                ApiResponse uploadImageResponse = await UploadImage(form);

                if (!uploadImageResponse.IsSuccess)
                {
                    await DisplayAlert("", Language.hinh_anh_vuot_qua_dung_luong_vui_long_thu_lai, Language.dong);

                    ImageUploaded          = false;
                    loadingPopup.IsVisible = false;
                }
            }

            if (ImageUploaded)
            {
                LiquidationToDay liquidationToDay = new LiquidationToDay();
                liquidationToDay.Id          = viewModel.LiquidationModel.Id;
                liquidationToDay.Name        = viewModel.LiquidationModel.Name;
                liquidationToDay.Code        = viewModel.LiquidationModel.Code;
                liquidationToDay.CategoryId  = viewModel.LiquidationModel.LiquidationCategory.Id;
                liquidationToDay.Price       = viewModel.LiquidationModel.Price;
                liquidationToDay.PriceToDay  = viewModel.LiquidationModel.PriceToDay;
                liquidationToDay.Status      = 0;
                liquidationToDay.Description = viewModel.LiquidationModel.Description;
                liquidationToDay.ProvinceId  = viewModel.LiquidationModel.Province.Id;
                liquidationToDay.DistrictId  = viewModel.LiquidationModel.District.Id;
                liquidationToDay.WardId      = viewModel.LiquidationModel.Ward.Id;
                liquidationToDay.Street      = viewModel.LiquidationModel.Street;
                liquidationToDay.Address     = viewModel.LiquidationModel.Address;
                liquidationToDay.Avatar      = imageList[0];
                liquidationToDay.Images      = string.Join(",", imageList);

                ApiResponse apiResponse = null;
                if (liquidationToDay.Id == Guid.Empty)
                {
                    apiResponse = await ApiHelper.Post(ApiRouter.LIQUIDATIONTODAY_SAVE, liquidationToDay, true);
                }
                else
                {
                    apiResponse = await ApiHelper.Put(ApiRouter.LIQUIDATIONTODAY_SAVE, liquidationToDay, true);
                }

                if (apiResponse.IsSuccess)
                {
                    try
                    {
                        await Navigation.PopAsync(false);

                        MessagingCenter.Send <AddToDayPage>(this, "OnSaveItem");
                        MessagingCenter.Send <AddToDayPage, Guid>(this, "OnSaveItem", liquidationToDay.Id);
                        ToastMessageHelper.ShortMessage(Language.luu_san_pham_thanh_cong);
                    }
                    catch
                    {
                    }
                }
                else
                {
                    loadingPopup.IsVisible = false;
                    await DisplayAlert("", Language.khong_the_luu_san_pham_vui_long_thu_lai, Language.dong);
                }
            }
            loadingPopup.IsVisible = false;
        }
        private async void Save_Clicked(object sender, EventArgs e)
        {
            if (EntryPrice.Text.HasValue == false || EntryPrice.Text.Value == 0)
            {
                await DisplayAlert("", Language.vui_long_nhap_gia_thanh_ly_trong_ngay, Language.dong);

                return;
            }
            loadingPopup.IsVisible = true;
            ApiResponse response = await ApiHelper.Get <Liquidation>(ApiRouter.LIQUIDATION_GETBYID + "/" + this.SelectedId);

            Liquidation liquidation = response.Content as Liquidation;

            ApiResponse copyResponse = await this.CopyImage(liquidation.Images);

            if (copyResponse == null)
            {
                await DisplayAlert("", Language.loi_hinh_anh_vui_long_thu_lai_sau, Language.dong);
            }
            else if (copyResponse.IsSuccess == false)
            {
                await DisplayAlert("", Language.loi_hinh_anh_vui_long_thu_lai_sau, Language.dong);
            }
            else
            {
                LiquidationToDay liquidationToDay = new LiquidationToDay()
                {
                    LiquidationId = liquidation.Id, // xac dinh la tu liquation thanh ly qua.
                    Code          = liquidation.Code,
                    Name          = liquidation.Name,
                    CategoryId    = liquidation.CategoryId,
                    Price         = liquidation.Price,
                    PriceToDay    = EntryPrice.Text.Value,
                    Status        = 0,
                    Description   = liquidation.Description,
                    ProvinceId    = liquidation.ProvinceId,
                    DistrictId    = liquidation.DistrictId,
                    WardId        = liquidation.WardId,
                    Street        = liquidation.Street,
                    Address       = liquidation.Address,
                    Avatar        = liquidation.Avatar,
                    Images        = liquidation.Images
                };

                var addResponse = await ApiHelper.Post(ApiRouter.LIQUIDATIONTODAY_SAVE, liquidationToDay, true);

                if (addResponse.IsSuccess)
                {
                    if (_fromProfilePage)
                    {
                        await Navigation.PopAsync();

                        await Navigation.PopAsync();
                    }
                    else
                    {
                        await Navigation.PopToRootAsync(); // tu danh sach qua thi back  ve list..
                    }
                    MessagingCenter.Send <PickerLiquidationPage>(this, "OnSaveItem");
                    ToastMessageHelper.ShortMessage(Language.dang_tin_thanh_ly_thanh_cong);
                }
                else
                {
                    CloseModal();
                    await DisplayAlert("", Language.loi_dang_tin_thanh_ly_vui_long_thu_lai, Language.dong);
                }
            }
            loadingPopup.IsVisible = false;
        }