コード例 #1
0
        /// <summary>
        /// Sets application busy state with the specified status.
        /// </summary>
        /// <param name="status">A string describing the reason for the busy state.</param>
        /// <returns><see cref="System.IDisposable"/> instance which should
        /// be disposed upon exiting from the busy state.</returns>
        /// <remarks>This method is intended to be used with using statement. For example:
        /// <example><![CDATA[
        /// using (WorkingStatusHelper.EnterBusyState("The application is currently Busy."))
        /// {
        ///     ...
        /// }
        /// ]]>
        /// </example>
        /// The application will leave busy state when the returned object has been disposed.
        /// </remarks>
        public static IDisposable EnterBusyState(string status)
        {
            var disposable = new DelegateDisposable(WorkingStatusHelper.SetReleased);

            WorkingStatusHelper.SetBusy(status);

            return(disposable);
        }
コード例 #2
0
        /// <summary>
        /// Method upfates day status.
        /// </summary>
        private void _UpdateDayStatus()
        {
            WorkingStatusHelper.SetBusy(null);

            if (_pendingDatesToUpdate.Count == 0)
            {
                return;
            }

            DateTime scheduleDate = _pendingDatesToUpdate[0];

            _pendingDatesToUpdate.RemoveAt(0);

            BuildStatus status = new BuildStatus();

            // If any solve operation is running on current date - define status as "Building".
            if (App.Current.Solver.GetAsyncOperations(scheduleDate).Count != 0)
            {
                status = BuildStatus.BuildingRoutes;
            }

            // If no solve operations running - define completed status by orders and routes collections of each schedule.
            else
            {
                status = _DefineCompletedStatus(scheduleDate);
            }

            DayStatus dayStatus = new DayStatus(status, null);

            _dayStatuses[scheduleDate] = dayStatus;

            // Raise event about status changed.
            if (DayStatusesChanged != null)
            {
                DayStatusesChanged(null, EventArgs.Empty);
            }

            WorkingStatusHelper.SetReleased();
        }
コード例 #3
0
 /// <summary>
 /// Sets application busy state with the specified status.
 /// </summary>
 /// <param name="status">The string describing busy state reason.</param>
 /// <returns><see cref="System.IDisposable"/> instance which should
 /// be disposed upon exiting from the busy state.</returns>
 /// <remarks><see cref="M:WorkingStatusHelper.EnterBusyState"/> method
 /// description for more details.
 /// </remarks>
 public IDisposable EnterBusyState(string status)
 {
     return(WorkingStatusHelper.EnterBusyState(status));
 }