/// <summary> /// —оздание или удаление элемента, в зависимости от параметра команды /// </summary> /// <param name="o"></param> private void RemoveOrInsertItem(object o) { var isInsert = o.ToString() == "Insert"; if (SelectedItem is Door) { var door = (Door)SelectedItem; var tempCar = CarList.FirstOrDefault(x => x.Doors.IndexOf(door) > -1); if (isInsert) { tempCar?.Doors.Insert(tempCar.Doors.IndexOf(door), new Door { DetailNumber = tempCar.Doors.Max(x => x.DetailNumber) + 1 }); } else { tempCar?.Doors.Remove(door); } return; } if (SelectedItem is Wheel) { var wheel = (Wheel)SelectedItem; var tempCar = CarList.FirstOrDefault(x => x.Wheels.IndexOf(wheel) > -1); if (isInsert) { tempCar?.Wheels.Insert(tempCar.Wheels.IndexOf(wheel), new Wheel { DetailNumber = tempCar.Wheels.Max(x => x.DetailNumber) + 1 }); } else { tempCar?.Wheels.Remove(wheel); } return; } if (SelectedItem is Nut) { var nut = (Nut)SelectedItem; var tempWheel = CarList.FirstOrDefault(x => x.Wheels.Select(y => y.Nuts.IndexOf(nut) > -1).FirstOrDefault())?.Wheels.FirstOrDefault(y => y.Nuts.IndexOf(nut) > -1); if (isInsert) { tempWheel?.Nuts.Insert(tempWheel.Nuts.IndexOf(nut), new Nut { DetailNumber = tempWheel.Nuts.Max(x => x.DetailNumber) + 1 }); } else { tempWheel?.Nuts.Remove(nut); } } }
public async void send() { if (string.IsNullOrEmpty(driverLicenceNo) || string.IsNullOrEmpty(imageSource) || string.IsNullOrEmpty(carPlate)) { await Application.Current.MainPage.DisplayAlert("Błąd", "The required fields have not been completed", "OK"); } else { //Sprawdzam czy podany przez użytkownika numer rejestracyjny pojazdu istnieje //w liście z pobranymi samochodami użytkownika i wybieram numer id tego samochodu var x = CarList.FirstOrDefault(z => z.PlateNo == carPlate); if (x != null) { application.CarId = x.Id; //Wybieram ID zalogowanego użytkownika z wyszukanego po numerze rejstracyjnym(który wprowadził użytkownik) samochodu //Zakładam ze numer rejstracyjny a zarazem samochód jest przypisany do tego użytkownika i będzie to dobre Id użytkownika //jest to słabe i wadliwe rozwazanie ale nie mam skąd pobrac Id zalogowanego uzytkownika //w AuthenticationService zapisujemy w Settings imie, nazwisko, zdjęcie, oraz token dostępu zalogowanego użytkownika. //Może warto pomyśleć nad tym aby pobierać z API również Id użytkownika który sie zalogował i również zapisać to w Settings application.UserId = x.UserId; application.DriverLicenceNo = driverLicenceNo; application.Date = DateTime.Now; application.DriverLicencePhoto = imageSource; await _applicationService.SendApplicationAsync(application); await Application.Current.MainPage.DisplayAlert("Save", "The application has been sent", "OK"); await Task.Delay(400); //Docelowo strona do wysyłania aplikacji będzie dostępna ze strony w której są wyświetlane wszystkie aplikacje wiec //po klikniecie Send i poprawnym wysłaniu, użytkownik zostanie przeniesiony z powrotem do strony ze wszystkimi jego aplikacjami; //Aktualnie po kliknięciu w przycisk wyrzuca błąd await Application.Current.MainPage.Navigation.PopAsync(); } else { await Application.Current.MainPage.DisplayAlert("Błąd", "A car with such registration numbers was not found", "OK"); } } }