protected PinViewModel(FilterViewModel parent, Model.Pin pin) { Parent = parent; _pin = pin; parent.PropertyChanged += parent_PropertyChanged; }
async void AcceptButton_Clicked(object sender, EventArgs e) { if ((IsDateAndTimeCorrect() && IsActivityPicked() && IsDescription())) { var user = repo.GetUserById(int.Parse(Preferences.Get("id", ""))); repo.UpdateUser("OrganisedMeetings", (user.OrganisedMeetings + 1).ToString(), user.Id); var newPin = new Model.Pin { Latitude = pin.Position.Latitude, Longitude = pin.Position.Longitude, Icon = imagePicked }; repo.InsertPin(newPin); Meeting meeting = new Meeting { OrganizerUser_Id = user.Id, OrganizerName = user.Name, OrganizerLastName = user.LastName, OrganizerAge = user.Age, ActivityName = activityPicked, ActivityIcon = imagePicked, Date = DatePicker.Date, Time = TimePicker.Time, Participants = 1, Pin_Id = repo.GetIdByPin(newPin), Description = Editor.Text }; repo.InsertMeeting(meeting); UserMeeting userMeeting = new UserMeeting { User_Id = user.Id, Meeting_Id = meeting.Id }; repo.InsertUserMeeting(userMeeting); string path = "Assets"; var assembly = typeof(MainPage).GetTypeInfo().Assembly; var stream = assembly.GetManifestResourceStream($"{assembly.GetName().Name}.{path}.{imagePicked}"); pin.Icon = BitmapDescriptorFactory.FromStream(stream, id: imagePicked); map.MoveToRegion(MapSpan.FromCenterAndRadius(pin.Position, map.VisibleRegion.Radius)); pin.Label = activityPicked; pin.Address = "Show more"; await PopupNavigation.Instance.PopAsync(); } else { if (!IsDateAndTimeCorrect()) { await DisplayAlert("Something went wrong.", "The date and time must be greater than today.", "Back"); } if (!IsActivityPicked()) { await DisplayAlert("Something went wrong.", "You have to choose activity.", "Back"); } if (!IsDescription()) { await DisplayAlert("Something went wrong.", "You have to write something in the description.", "Back"); } } }