/// <summary>
        /// Получить отчет по событиям устройства
        /// </summary>
        public string GetEventsReport(DSRouterEventsReportSettings reportSettings)
        {
            string result = null;

            try
            {
                string reportName = "Отчет " + DateTime.Now.ToShortDateString();

                if (SaveEventsReport(DEFAULT_PATH_TO_DIRECTORY_TO_SHARE_FILES, reportName, reportSettings) == null)
                    return null;

                result = DEFAULT_URL_TO_DIRECTORY_TO_SHARE_FILES + reportName + reportSettings.ReportExtension;
            }
            catch (Exception ex)
            {
                Log.WriteErrorMessage("DSRouterService.GetEventsReport() : Исключение : " + ex.Message);
            }

            return result;
        }
        /// <summary>
        /// Получить отчет по событиям устройства
        /// </summary>
        public byte[] GetEventsReportAsByteArray(DSRouterEventsReportSettings reportSettings)
        {
            byte[] result = null;

            try
            {
                string reportName = "Отчет " + DateTime.Now.ToShortDateString();

                var pathToReport = SaveEventsReport(Path.GetTempPath(), reportName, reportSettings);
                if (pathToReport == null)
                    return null;

                using (var stream = File.Open(pathToReport, FileMode.Open))
                {
                    result = new byte[stream.Length];

                    stream.Read(result, 0, result.Length);
                    stream.Close();
                }

            }
            catch (Exception ex)
            {
                Log.WriteErrorMessage("DSRouterService.GetEventsReportAsByteArray() : Исключение : " + ex.Message);
            }

            return result;
        }
        /// <summary>
        /// Собирает данные и сохраняет отчет в указанное место
        /// </summary>
        private string SaveEventsReport(string pathToSave, string reportName, DSRouterEventsReportSettings reportSettings)
        {
            string result = null;

            #region Получение данных

            var dsGuid = reportSettings.DsGuid;
            var deviceGuid = reportSettings.DeviceGuid;

            var events = (this as IDSRouter).GetEvents(reportSettings.StartDateTime, reportSettings.EndDateTime,
                false, false, true, new List<Tuple<ushort, uint>> { new Tuple<ushort, uint>(dsGuid, deviceGuid) });

            if (events == null)
                return null;

            #endregion

            #region Подготовка данных

            var dataSource = FillDataSet(events, null, null);

            #endregion

            #region Формирование отчета

            string reportTemplateName = String.IsNullOrWhiteSpace(reportSettings.ReportTamplateName) ? "EventsReport" : reportSettings.ReportTamplateName;

            var report = new Report(reportTemplateName);
            report.SetDataSource(dataSource);

            report.SaveReportFile(pathToSave, reportName, reportSettings.ReportExtension.ToString());

            result = Path.Combine(pathToSave, reportName + "." + reportSettings.ReportExtension.ToString());

            #endregion

            return result;
        }