| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | using System;using MediaBrowser.Controller.Configuration;using MediaBrowser.Controller.Net;using MediaBrowser.Model.Services;using MediaBrowser.Model.SyncPlay;using Microsoft.Extensions.Logging;namespace MediaBrowser.Api.SyncPlay{    [Route("/GetUtcTime", "GET", Summary = "Get UtcTime")]    public class GetUtcTime : IReturnVoid    {        // Nothing    }    /// <summary>    /// Class TimeSyncService.    /// </summary>    public class TimeSyncService : BaseApiService    {        public TimeSyncService(            ILogger<TimeSyncService> logger,            IServerConfigurationManager serverConfigurationManager,            IHttpResultFactory httpResultFactory)            : base(logger, serverConfigurationManager, httpResultFactory)        {            // Do nothing        }        /// <summary>        /// Handles the specified request.        /// </summary>        /// <param name="request">The request.</param>        /// <value>The current UTC time response.</value>        public UtcTimeResponse Get(GetUtcTime request)        {            // Important to keep the following line at the beginning            var requestReceptionTime = DateTime.UtcNow.ToUniversalTime().ToString("o");            var response = new UtcTimeResponse();            response.RequestReceptionTime = requestReceptionTime;            // Important to keep the following two lines at the end            var responseTransmissionTime = DateTime.UtcNow.ToUniversalTime().ToString("o");            response.ResponseTransmissionTime = responseTransmissionTime;            // Implementing NTP on such a high level results in this useless            // information being sent. On the other hand it enables future additions.            return response;        }    }}
 |