using System;
namespace Wayne.Lib
{
    /// <summary>
    /// Interface to the Wayne time abstraction, should be used instead of DateTime.Now.
    /// </summary>
    public interface ISystemTime
    {
        /// <summary>
        /// Current date and time.
        /// </summary>
        DateTime Now { get; }

        ///<summary>
        /// Sets the system time. Time specified as UTC
        ///</summary>
        ///<param name="newTime"></param>
        ///<exception cref="Exception"></exception>
        void SetSystemTime(DateTime newTime);

        /// <summary>
        /// Set local time, in local time zone.
        /// </summary>
        /// <param name="newTime"></param>
        void SetLocalTime(DateTime newTime);
    }
}