Beispiel #1
0
        /// <summary>
        /// Select a new DueDate for the WorkItem.
        /// If the DueDate (from database) has been set within x mins of now, UPDATE the record instead of INSERTING it.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void DueDateButton_Click(object sender, RoutedEventArgs e)
        {
            if (_model.SelectedWorkItem != null)
            {
                WorkItem selectedWI     = _model.SelectedWorkItem;
                DateTime currentDueDate = selectedWI.DueDate;
                var      ddDialog       = new DueDateDialog(currentDueDate);
                ddDialog.Owner = this;
                ddDialog.ShowDialog();

                if (ddDialog.WasDialogSubmitted)
                {
                    if (ddDialog.NewDateTime.Equals(currentDueDate))
                    {
                        // Do nothing
                    }
                    else
                    {
                        int rowID = -1;
                        // If the DueDate (from database) has been set within x mins of now, UPDATE the record instead of INSERTING it.
                        int minutesSinceLastSet = DateTime.Now.Subtract(selectedWI.Meta.DueDateUpdateDateTime).Minutes;
                        if (minutesSinceLastSet < Convert.ToInt32(_controller.GetMWTModel().GetAppPreferenceValue(PreferenceName.DUE_DATE_SET_WINDOW_MINUTES)))
                        {
                            // Update
                            rowID = _controller.UpdateDBDueDate(selectedWI, ddDialog.NewDateTime, ddDialog.ChangeReason);
                        }
                        else
                        {
                            // Insert
                            rowID = _controller.InsertDBDueDate(selectedWI, ddDialog.NewDateTime, ddDialog.ChangeReason);
                        }

                        // Update the update/record change time.
                        selectedWI.Meta.DueDate_ID            = rowID;
                        selectedWI.Meta.DueDateUpdateDateTime = DateTime.Now;
                        selectedWI.DueDate = ddDialog.NewDateTime;
                        selectedWI.Meta.DueDateUpdateDateTime = DateTime.Now;

                        // Refresh the time label
                        DueInDaysTextField.Text = DateMethods.GenerateDateDifferenceLabel(DateTime.Now, _model.SelectedWorkItem.DueDate, true);
                    }
                }
            }
        }