private async Task RentThisCarAsync()
        {
            using (UserDialogs.Instance.Loading("Loading"))
            {
                RentedCar.IsTermin   = IsTermin;
                RentedCar.ClientName = SelectedClient.Name;
                RentedCar.CarName    = SelectedCar.Name;
                RentedCar.RentId     = App.instance.DashboardViewModel.CurrentRent.Id;
                if (RentedCar.Cmimi.ID > 0)
                {
                    RentedCar.CmimiID = RentedCar.Cmimi.ID;
                }
                var json = JsonConvert.SerializeObject(RentedCar);
                var g    = json.Remove(1, 7);
                App.client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
                HttpContent httpContent = new StringContent(g, Encoding.UTF8, "application/json");
                var         response    = await App.client.PostAsync(App.API_URL_BASE + "rentedcars", httpContent);

                if (response.IsSuccessStatusCode)
                {
                    //UserDialogs.Instance.Alert("Vetura u leshua me sukses", "Sukses", "OK");
                    IsSuccess = true;
                }
                else
                {
                    //UserDialogs.Instance.Alert("Vetura nuk u leshua me sukses", "Error", "OK");
                    IsSuccess = false;
                    return;
                }
                var responseString = await response.Content.ReadAsStringAsync();

                RentedCar addedCar = JsonConvert.DeserializeObject <RentedCar>(responseString);
                SelectedRentedCar = addedCar;
                IsSuccessfullRent = addedCar != null ? true : false;
                var page = new PostRentedCarPage();
                page.BindingContext = this;
                App.instance.DashboardViewModel.LatestTransactions?.Add(addedCar);
                var car = App.instance.DashboardViewModel.AvailableCars.FirstOrDefault(x => x.Id == addedCar.CarId);
                car.Statusi = Car.StatusTypes.Zene;
                App.instance.DashboardViewModel.AvailableCars.Remove(car);
                if (App.instance.DashboardViewModel.TakenCars.Count == 0)
                {
                    App.instance.DashboardViewModel.TakenCars = new ObservableCollection <Car>();
                }
                App.instance.DashboardViewModel.TakenCars.Add(car);
                if (App.instance.DashboardViewModel.LatestTransactions.Count > 5)
                {
                    App.instance.DashboardViewModel.LatestTransactions.RemoveAt(0);
                }
                App.instance.DashboardViewModel.RentedCarsByRentId?.Add(addedCar);
                App.instance.DashboardViewModel.PropertyChangedList();
                App.instance.DashboardViewModel.LatestTransactionsOnGoing.Add(addedCar);
                await Task.Delay(100);

                IsSuccess = true;
                App.instance.ChangeDetailPage(page);
            }
        }
Exemple #2
0
        private async Task KtheVeturenAsync()
        {
            using (UserDialogs.Instance.Loading("Loading"))
            {
                CurrentRentedCar.KohaAktualeEKthimit = DateTime.Now;
                var json = JsonConvert.SerializeObject(CurrentRentedCar);
                App.client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
                HttpContent httpContent = new StringContent(json, Encoding.UTF8, "application/json");
                var         response    = await App.client.PutAsync(App.API_URL_BASE + "rentedcars/update", httpContent);

                if (response.IsSuccessStatusCode)
                {
                    //UserDialogs.Instance.Alert("Vetura u kthye me sukses", "Sukses", "OK");
                }
                else
                {
                    //UserDialogs.Instance.Alert("Vetura nuk u kthye  me sukses", "Error", "OK");
                    IsSuccess = false;
                    return;
                }
                var responseString = await response.Content.ReadAsStringAsync();

                RentedCar addedCar = JsonConvert.DeserializeObject <RentedCar>(responseString);
                IsSuccessfullRent = addedCar != null ? true : false;
                var page = new PostRentedCarPage();
                page.BindingContext = this;
                IsSuccess           = true;
                var car = TakenCars.FirstOrDefault(x => x.Id == addedCar.CarId);
                LatestTransactionsFinished.Add(addedCar);
                LatestTransactionsOnGoing.Remove(addedCar);
                if (LatestTransactionsFinished.Count > 5)
                {
                    App.instance.DashboardViewModel.LatestTransactions.RemoveAt(0);
                }
                RentedCarsByRentId.Remove(CurrentRentedCar);
                RentedCarsByRentId.Add(addedCar);
                var     teHyrat = RentedCarsByRentId.ToList().FindAll(x => x.IsFinished && x.KohaELeshimit >= DateTime.Now.AddMonths(-1));
                decimal count   = 0.00m;
                foreach (var item in teHyrat)
                {
                    count += (decimal)item.DitetELeshimit * item.CmimiDitor;
                }
                TeHyrat = count;
                OnPropertyChanged("TeHyrat");
                car.Statusi = Car.StatusTypes.Aktiv;
                car.Km      = CurrentRentedCar.KilometrazhiAktual;
                AvailableCars.Add(car);
                TakenCars.Remove(car);
                var ongoing = LatestTransactionsOnGoing.FirstOrDefault(x => x.Id == addedCar.Id);
                if (ongoing != null)
                {
                    LatestTransactionsOnGoing.Remove(ongoing);
                }
                OnPropertyChanged("LatestTransactionsOnGoing");
                HasTakenCars     = TakenCars.Any();
                HasAvailableCars = AvailableCars.Any();
                OnPropertyChanged("HasTakenCars");
                await Task.Delay(500);

                App.instance.ChangeDetailPage(page);
            }
        }