private async void DatePicker_DOB_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == "SelectedDate") { var date = sender as MyDatePicker; if (string.IsNullOrWhiteSpace(date.SelectedDate)) { return; } var hasError = false; var errorMessage = ""; if (date != null && Convert.ToDateTime(date.SelectedDate).Date > DateTime.Now) { hasError = true; errorMessage = "Date entered cannot exceed current date."; } else { if (date != null) { var selectedDate = Convert.ToDateTime(date.SelectedDate); if (!(selectedDate.Date <= vM.MaximumDate && selectedDate.Date >= vM.MinimumDate)) { hasError = true; } } } if (hasError) { date.SelectedDate = string.Empty; //This will trigger the SelectedDate again. var firstTestRecord = vM.Records.FirstOrDefault(p => p.IsDateVisible); if (errorMessage.Length == 0) { if (firstTestRecord.DomainCode == DomainCode) { errorMessage = "Testing ranges must be within 30 days of testing each subdomain due to developmental milestones progressing over time. Please enter a valid test date or enter scores in a new record form."; } else { errorMessage = "One or more testing dates are not within a 30 day period of the first test date. Testing ranges must be within 30 days of testing each subdomain due to developmental milestones progressing over time. Please enter a valid date or enter scores in a new record form."; } } var popup = new CustomPopupView(new CustomPopUpDetails() { Header = "Invalid Test Date", Message = errorMessage, Height = 228, Width = 450 }); popup.BindingContext = vM; popup.CloseWhenBackgroundIsClicked = false; await PopupNavigation.Instance.PushAsync(popup); return; } vM.IsOverviewChanged = true; vM.Records.Where(p => !string.IsNullOrEmpty(p.DomainCode)).FirstOrDefault(p => p.DomainCode == DomainCode).TestDate = date.SelectedDate; date.SelectedDate = string.Empty; //This will trigger the SelectedDate again. } //if (Device.RuntimePlatform == Device.iOS) // DatePickerGrid.IsVisible = false; }
SessionManager() { SearchErrorContinueCommand = new Command(SessionWarningContinueCommand); popup = new Views.PopupViews.CustomPopupView(new Views.PopupViews.CustomPopUpDetails() { Header = "Session Expiring", Message = "Session will expire in 5 minutes, press Continue to extend time.", Height = 211, Width = 450 }, title: SessionExpiringPopUpTitle); popup.CloseWhenBackgroundIsClicked = true; popup.BindingContext = this; }
private async void DatePicker_DOB_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if (e.PropertyName == "SelectedDate") { var date = sender as MyDatePicker; if (date != null && string.IsNullOrWhiteSpace(date.SelectedDate)) { return; } var hasError = false; var errorMessage = ""; var splittedDate = date.SelectedDate.Split('/'); DateTime itemdateTime = new DateTime(Convert.ToInt32(splittedDate[2]), Convert.ToInt32(splittedDate[0]), Convert.ToInt32(splittedDate[1])); if (date != null && itemdateTime.Date > DateTime.Now) { hasError = true; errorMessage = "Date entered cannot exceed current date."; } else { if (date != null) { var selectedDate = itemdateTime; if (!(selectedDate.Date <= MyViewModel.MaxDate && selectedDate.Date >= MyViewModel.MinDate)) { hasError = true; } } } if (hasError) { date.SelectedDate = string.Empty; //This will trigger the SelectedDate again. if (errorMessage.Length == 0) { if (MyViewModel.isFirstRecord) { errorMessage = "Testing ranges must be within 30 days of testing each subdomain due to developmental milestones progressing over time. Please enter a valid test date or enter scores in a new record form."; } else { errorMessage = "One or more testing dates are not within a 30 day period of the first test date. Testing ranges must be within 30 days of testing each subdomain due to developmental milestones progressing over time. Please enter a valid date or enter scores in a new record form."; } } var popup = new CustomPopupView(new CustomPopUpDetails() { Header = "Invalid Test Date", Message = errorMessage, Height = 228, Width = 450 }); popup.BindingContext = MyViewModel; popup.CloseWhenBackgroundIsClicked = false; await PopupNavigation.Instance.PushAsync(popup); return; } date.SelectedDate = string.Empty; //This will trigger the SelectedDate again. testDate.Text = (sender as MyDatePicker).SelectedDate; MyViewModel.TestDate = testDate.Text; MyViewModel.SaveTestDate((sender as MyDatePicker).SelectedDate); } if (Device.RuntimePlatform == Device.iOS) { DatePickerGrid.IsVisible = false; } }