コード例 #1
0
ファイル: PostSim.xaml.cs プロジェクト: dangty253/SimHere
        public async Task InitUpdate()
        {
            labelStatus.IsVisible = true;
            entryStatus.IsVisible = true;
            entryNumber.IsEnabled = false;
            viewModel.IsLoading   = false;
            await viewModel.LoadNumberTypes();

            var result = await ApiHelper.Get <Sim>("api/sim/" + SimId);

            if (result.IsSuccess)
            {
                var sim = (Sim)result.Content;
                Title = sim.DisplayNumber;

                var model = new AddSimViewModel()
                {
                    SimNumber     = sim.SimNumber,
                    DisplayNumber = sim.DisplayNumber,
                    Price         = sim.Price,
                    Carrier       = viewModel.CarrierOptions.SingleOrDefault(x => x.Id == sim.CarrierId),
                    Status        = sim.Status.Value,
                    StatusFormat  = sim.StatusFormat,
                    Description   = sim.Description
                };

                if (sim.ImageId.HasValue)
                {
                    viewModel.SelectedImage = viewModel.Images.SingleOrDefault(x => x.Id == sim.ImageId.Value);
                }

                if (sim.Status == 0) // chua ban
                {
                    BtnDangSim.IsVisible = true;
                    BtnPost.IsVisible    = true;
                    AddDeleteToolbar();
                }
                else if (sim.Status == 1) // dang mo ban
                {
                    BtnCancle.IsVisible = true;
                }
                else if (sim.Status == 2) // da ban
                {
                }
                else if (sim.Status == 3) // huy
                {
                }
                else if (sim.Status == 4)
                {
                }

                viewModel.Sim = model;

                if (sim.SubcribeTypeId.HasValue)
                {
                    viewModel.Sim.SubcribeType = viewModel.SubcribeTypeOptions.SingleOrDefault(x => x.Id == sim.SubcribeTypeId.Value);
                }

                foreach (var item in viewModel.NumberTypeOptions)
                {
                    if (sim.Sim_NumberTypes.Any(x => x.NumberTypeId == item.Id))
                    {
                        item.IsSelected = true;
                    }
                }

                InitButtonGroup();
                BtnCompleteSimType_Clicked(null, null);
            }
            MainGrid.IsVisible    = true;
            gridLoading.IsVisible = false;
        }
コード例 #2
0
ファイル: PostSim.xaml.cs プロジェクト: dangty253/SimHere
        private async void BtnPost_Clicked(object sender, EventArgs e)
        {
            AddSimViewModel model = viewModel.Sim;

            if (string.IsNullOrWhiteSpace(model.SimNumber))
            {
                await DisplayAlert("", "Vui lòng nhập số sim", "Đóng");

                return;
            }

            if (model.SimNumber.Length < 9)
            {
                await DisplayAlert("", "Số Sim không đúng định dạng", "Đóng");

                return;
            }

            if (string.IsNullOrWhiteSpace(model.DisplayNumber))
            {
                await DisplayAlert("", "Vui lòng nhập số sim", "Đóng");

                return;
            }

            if (model.Carrier == null)
            {
                await DisplayAlert("", "Vui lòng chọn nhà mạng", "Đóng");

                return;
            }

            if (model.Price.HasValue == false)
            {
                await DisplayAlert("", "Vui lòng nhập giá sim", "Đóng");

                return;
            }
            gridLoading.IsVisible = true;

            Sim sim = new Sim();

            sim.SimNumber     = model.SimNumber;
            sim.DisplayNumber = model.DisplayNumber;
            sim.Price         = model.Price.Value;
            sim.CarrierId     = model.Carrier.Id;
            sim.Description   = model.Description;
            if (model.SubcribeType != null)
            {
                sim.SubcribeTypeId = model.SubcribeType.Id;
            }

            if (SimId != null) // sửa thì gán thêm id.
            {
                sim.Id = SimId;
            }

            IEnumerable <NumberType> numberTypes = viewModel.NumberTypeOptions.Where(x => x.IsSelected).Select(x => new NumberType()
            {
                Id = x.Id
            });

            AddUpdateSimViewModel addUpdateSimViewModel = new AddUpdateSimViewModel();

            addUpdateSimViewModel.Sim         = sim;
            addUpdateSimViewModel.NumberTypes = numberTypes;

            ApiResponse response = null;

            if (SimId == null)
            {
                response = await ApiHelper.Post("api/sim", addUpdateSimViewModel, true);
            }
            else
            {
                response = await ApiHelper.Put("api/sim", addUpdateSimViewModel, true);
            }

            if (response.IsSuccess)
            {
                if (SimId == null)
                {
                    //MySimList mySimList = ((App.Current.MainPage as MainPage).Children[3] as NavigationPage).RootPage as MySimList;
                    //MySimListViewModel mySimListVM = mySimList.BindingContext as MySimListViewModel;

                    MySimListViewModel mySimListVM = Shell.Current.BindingContext as MySimListViewModel;

                    //mySimListVM.RefreshCommand.Execute(null);
                    //await Navigation.PopAsync(false);
                    await mySimListVM.LoadOnRefreshCommandAsync();

                    var added = mySimListVM.Data[0];

                    SimId = added.Id;

                    gridLoading.IsVisible = false;
                    var actionSheet = await DisplayActionSheet("Lưu thành công. Bạn có muốn đăng bán sim này không?", "Để sau", null, "Đăng bán");

                    if (actionSheet == "Đăng bán")
                    {
                        BtnDangSimClicked(sender, EventArgs.Empty);
                    }
                    else
                    {
                        await Shell.Current.Navigation.PopAsync();

                        await Shell.Current.Navigation.PushAsync(new PostSim(SimId), false);

                        XFToast.ShortMessage("Lưu thành công !");
                    }
                }
                else
                {
                    gridLoading.IsVisible = false;
                    XFToast.ShortMessage("Lưu thành công !");
                }
            }
            else
            {
                await DisplayAlert("", response.Message, "Đóng");

                gridLoading.IsVisible = false;
            }
        }