void OpenDob(object sender, EventArgs e) { if (Device.RuntimePlatform == Device.UWP) { DOBpicker.ShowDatePicker(); } else { DOBpicker.Focus(); } }
private void VM_DatePicketSelectedEvent(object sender, TestSessionModel e) { Device.BeginInvokeOnMainThread(() => { this.DomainCode = e.DomainCode; DOBpicker.IsShowPicker = true; var success = DateTime.TryParse(e.TestDate, out DateTime dateTime); if (success) //on inital load value will be mm/dd/yyyy { if (vM.Records != null) { var selectedTestRecord = vM.Records.FirstOrDefault(p => p.DomainCode == e.DomainCode); if (selectedTestRecord != null) { var maxDateItem = vM.Records.Where(p => p.IsDateVisible).OrderByDescending(p => p.DateOfTest).FirstOrDefault(); var mindateItem = vM.Records.Where(p => p.IsDateVisible).OrderBy(p => p.DateOfTest).FirstOrDefault(); var dataservice = DependencyService.Get <ICommonDataService>(); var dobSpliteDate = dataservice.DOB.Split('/'); DateTime dobDateTime = new DateTime(Convert.ToInt32(dobSpliteDate[2]), Convert.ToInt32(dobSpliteDate[0]), Convert.ToInt32(dobSpliteDate[1])); if (maxDateItem != null && mindateItem != null) { var dateDiff = maxDateItem.DateOfTest - mindateItem.DateOfTest; if (dateDiff.TotalDays == 0) { var mindate = mindateItem.DateOfTest.AddDays(-30); if (mindate < dobDateTime.Date) { vM.MinimumDate = dobDateTime.Date; } else { vM.MinimumDate = mindate; } var maxDate = maxDateItem.DateOfTest.AddDays(30); if (maxDate > DateTime.Now.Date) { vM.MaximumDate = DateTime.Now; } else { vM.MaximumDate = maxDate; } } else if (dateDiff.TotalDays == 30) { vM.MinimumDate = mindateItem.DateOfTest; vM.MaximumDate = maxDateItem.DateOfTest; } else { var diffDays = 30 - dateDiff.TotalDays; var mindate = mindateItem.DateOfTest.AddDays(-diffDays); if (mindate < dobDateTime.Date) { vM.MinimumDate = dobDateTime.Date; } else { vM.MinimumDate = mindate; } var maxDate = maxDateItem.DateOfTest.AddDays(diffDays); if (maxDate > DateTime.Now.Date) { vM.MaximumDate = DateTime.Now; } else { vM.MaximumDate = maxDate.Date; } } } } } DOBpicker.Date = dateTime; DOBpicker.ManualMaxDate = true; DOBpicker.ManualMinDate = true; DOBpicker.MaximumDate = vM.MaximumDate; DOBpicker.MinimumDate = vM.MinimumDate; } else { DOBpicker.Date = DateTime.Now; } DOBpicker.IsVisible = true; if (Device.RuntimePlatform == Device.UWP) { DOBpicker.ShowDatePicker(); } else { DOBpicker.Focus(); } //DOBpicker.Focus(); }); }