public TripViewModel()
        {
            IsRefreshing = false;
            _instance    = this;
            IApiService apiService = new ApiService();

            _apiService = apiService;
            GetUserData();

            EditCommand = new Command <TripResponse>(async(t) =>
            {
                var id   = t.Id;
                var type = "Edit";
                await Shell.Current.GoToAsync($"edittrippage?type={type}&id={id}");
            });
        }
        private async void AsyncDelete()
        {
            var answer = await App.Current.MainPage.DisplayAlert(
                Languages.Confirm,
                Languages.QuestionT,
                Languages.Yes,
                Languages.No);

            if (!answer)
            {
                return;
            }

            IsEnable = false;

            var url      = App.Current.Resources["UrlAPI"].ToString();
            var token    = JsonConvert.DeserializeObject <TokenResponse>(Settings.Token);
            var response = await _apiService.DeleteAsync(
                url,
                "/api",
                "/Trips",
                Trip.Id,
                "bearer",
                token.Token);

            if (!response.IsSuccess)
            {
                IsEnable = true;
                await App.Current.MainPage.DisplayAlert(Languages.Error, response.Message, Languages.Accept);

                return;
            }
            IsEnable = true;
            await TripViewModel.GetInstance().UpdateUserData();

            await Application.Current.MainPage.DisplayAlert("Trip Information", "Trips has been deleted", "Accept");

            await Shell.Current.Navigation.PopToRootAsync();
        }
        private async void SaveAsync()
        {
            EntryEmpty = "Transparent";
            var isValid = ValidateData();

            if (!isValid)
            {
                return;
            }

            IsEnable  = false;
            IsRunning = true;
            var url      = App.Current.Resources["UrlAPI"].ToString();
            var token    = JsonConvert.DeserializeObject <TokenResponse>(Settings.Token);
            var traveler = JsonConvert.DeserializeObject <TravelerResponse>(Settings.Traveler);

            var tripRequest = new TripRequest
            {
                Id         = Trip.Id,
                City       = Trip.City,
                Budget     = Trip.Budget,
                Date       = Trip.Date,
                EndDate    = Trip.EndDate,
                TravelerId = traveler.Id,
            };

            Response <object> response;

            if (IsEdit)
            {
                response = await _apiService.PutAsync(
                    url,
                    "/api",
                    "/Trips",
                    tripRequest.Id,
                    tripRequest,
                    "bearer",
                    token.Token);
            }
            else
            {
                response = await _apiService.PostAsync(
                    url,
                    "/api",
                    "/Trips",
                    tripRequest,
                    "bearer",
                    token.Token);
            }

            IsEnable  = true;
            IsRunning = false;
            if (!response.IsSuccess)
            {
                await Application.Current.MainPage.DisplayAlert(Languages.Error, response.Message, Languages.Accept);

                return;
            }
            await TripViewModel.GetInstance().UpdateUserData();

            await App.Current.MainPage.DisplayAlert(
                Languages.Accept,
                string.Format(Languages.CreateEditTripConfirm, IsEdit ? Languages.Edited : Languages.Created),
                Languages.Accept);

            await Shell.Current.Navigation.PopToRootAsync();
        }
Esempio n. 4
0
        private async void SaveAsync()
        {
            EntryEmpty = "Transparent";
            var isValid = ValidateData();

            if (!isValid)
            {
                return;
            }

            IsEnable  = false;
            IsRunning = true;
            var url      = App.Current.Resources["UrlAPI"].ToString();
            var token    = JsonConvert.DeserializeObject <TokenResponse>(Settings.Token);
            var traveler = JsonConvert.DeserializeObject <TravelerResponse>(Settings.Traveler);

            var viaticRequest = new ViaticRequest
            {
                Id             = Viatic.Id,
                Name           = Viatic.Name,
                Description    = Viatic.Description,
                InvoiceAmmount = Viatic.InvoiceAmmount,
                InvoiceDate    = Viatic.InvoiceDate,
                ViaticType     = SelectedViaticType.Name,
                TripId         = TripIdNumber,
                TravelerId     = traveler.Id,
            };

            Response <object> response;

            if (IsEdit)
            {
                response = await _apiService.PutAsync(
                    url,
                    "/api",
                    "/Viatics",
                    viaticRequest.Id,
                    viaticRequest,
                    "bearer",
                    token.Token);
            }
            else
            {
                response = await _apiService.PostAsync(
                    url,
                    "/api",
                    "/Viatics",
                    viaticRequest,
                    "bearer",
                    token.Token);
            }

            IsEnable  = true;
            IsRunning = false;
            if (!response.IsSuccess)
            {
                await Application.Current.MainPage.DisplayAlert(Languages.Error, response.Message, Languages.Accept);

                return;
            }
            await App.Current.MainPage.DisplayAlert(
                Languages.TripEditCreation,
                string.Format(Languages.CreateEditTripConfirm, IsEdit ? Languages.Edited : Languages.Created),
                Languages.Accept);

            await Shell.Current.Navigation.PopAsync();

            await TripViewModel.GetInstance().UpdateUserData();
        }