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); } }
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); } }