private async void ConfigureInformationLabels() { // Sometimes the view may appear while items are still being retrieved from the server. // Repeatedly waiting until the items have been retrieved ensures that the hours worked text is correct. while (AllItemsViewModel.IsBusy) { await Task.Delay(150); } txtHoursWorkedToday.Text = "Today: " + AllItemsViewModel.NumberHoursWorkedOnDay(DateTime.Now) + " hrs"; txtHoursWorkedThisWeek.Text = "This Period: " + AllItemsViewModel.NumberHoursWorkedOnDay() + " hrs"; var startCurrent = ProjectSettings.GetStartOfCurrentPayPeriod().Date; var startEntires = AllItemsViewModel.GetStartOfPayPeriod().Date; if (startEntires.CompareTo(startCurrent) < 0) { txtWarningLabel.AdjustsFontSizeToFitWidth = true; txtWarningLabel.Text = ViewModel.NeedToSubmitTimecardWarningMessage; } else { txtWarningLabel.Text = string.Empty; } RemoveLoadingIndicator(); }
public override bool ShouldPerformSegue(string segueIdentifier, NSObject sender) { if (segueIdentifier == "NavigateFromHomeToSubmit") { float numHoursWorked = AllItemsViewModel.NumberHoursWorkedOnDay(); if (numHoursWorked < ProjectSettings.NumberHoursInWorkWeek) { // The user hasn't worked at least 40 hours this week so display an alert message var alert = UIAlertController.Create( "Are you sure you want to submit your timecard?", string.Format("You have recorded less than {0} hours this week.", ProjectSettings.NumberHoursInWorkWeek), UIAlertControllerStyle.ActionSheet); alert.AddAction(UIAlertAction.Create("Continue", UIAlertActionStyle.Default, (UIAlertAction) => { PerformSegue("NavigateFromHomeToSubmit", null); })); alert.AddAction(UIAlertAction.Create("Cancel", UIAlertActionStyle.Cancel, null)); PresentViewController(alert, animated: true, completionHandler: null); return(false); } } return(true); }
private void ConfigureDatePicker() { datePicker = new UIDatePicker { Mode = UIDatePickerMode.Date, Date = (NSDate)AllItemsViewModel.GetInitialPickerDate(), MinimumDate = (NSDate)AllItemsViewModel.GetStartOfPayPeriod(), MaximumDate = (NSDate)AllItemsViewModel.GetEndOfPayPeriod(), TimeZone = NSTimeZone.LocalTimeZone }; // Whenever the date changes, set the date text field to the value of the picker datePicker.ValueChanged += (sender, e) => { txtDateField.Text = ((DateTime)datePicker.Date).ToLocalTime().ToString(ProjectSettings.DateFormat); }; txtDateField.Text = ((DateTime)datePicker.Date).ToLocalTime().ToString(ProjectSettings.DateFormat); txtDateField.InputView = datePicker; if (EditingItem != null) { // If the user is editing this entry, set the picker to the previously selected date txtDateField.Text = EditingItem.JobDate.ToLocalTime().ToString(ProjectSettings.DateFormat); datePicker.SetDate((NSDate)EditingItem.JobDate, false); } }