/// <summary>
        /// этот метод вызовет программа обновления службы, сообщив свою
        /// локальную директорию и статус обновления
        /// </summary>
        public void UpdateServiceFilesStates(string serviceFolder, int filesUpdated, int filesLeft, bool updateFinished)
        {
            // найти сервис по директории
            var map = ServiceMap.LoadSettings();

            if (map.Items.Count == 0)
            {
                return;
            }
            var srv = map.Items.FirstOrDefault(m => m.Folder == serviceFolder);

            if (srv == null)
            {
                Logger.DebugFormat("Информация по сервису в каталоге [{0}] - сервис не найден",
                                   serviceFolder);
                return;
            }

            if (updateFinished)
            {
                serviceStatus.TryRemove(s => s.ServiceName == srv.ServiceName, 2000);
                return;
            }

            var srvStatus = new ServiceUpdateStatus
            {
                FilesLeft    = filesLeft,
                FilesUpdated = filesUpdated,
                ServiceName  = srv.ServiceName
            };

            serviceStatus.TryRemove(s => s.ServiceName == srv.ServiceName, 2000);
            serviceStatus.Add(srvStatus, 2000);
        }
        /// <summary>
        /// этот метод вызовет программа обновления службы, сообщив свою
        /// локальную директорию и статус обновления
        /// </summary>
        public void UpdateServiceFilesStates(string serviceFolder, int filesUpdated, int filesLeft, bool updateFinished)
        {
            // найти сервис по директории
            var map = ServiceMap.LoadSettings();
            if (map.Items.Count == 0) return;
            var srv = map.Items.FirstOrDefault(m => m.Folder == serviceFolder);
            if (srv == null)
            {
                Logger.DebugFormat("Информация по сервису в каталоге [{0}] - сервис не найден",
                    serviceFolder);
                return;
            }

            if (updateFinished)
            {
                serviceStatus.TryRemove(s => s.ServiceName == srv.ServiceName, 2000);
                return;
            }

            var srvStatus = new ServiceUpdateStatus
                {
                    FilesLeft = filesLeft,
                    FilesUpdated = filesUpdated,
                    ServiceName = srv.ServiceName
                };
            serviceStatus.TryRemove(s => s.ServiceName == srv.ServiceName, 2000);
            serviceStatus.Add(srvStatus, 2000);
        }