public Task RegAsync(string ip, VideoRegResponce responce)
 {
     return(new Task(() =>
     {
         // TODO : Доделать статистику
     }));
 }
Exemple #2
0
        protected override async Task UpdateAsync(VideoRegReqvestSettings parameters)
        {
            this.parameters = parameters;
            while (!source.IsCancellationRequested)
            {
                VideoRegResponce regResponce = null;
                try
                {
                    regResponce = await api.GetVideoRegInfoAsync(Ip, config.TimeoutMs, source);
                }
                catch (TimeoutException e)
                {
                    log.Error($"{Name} TimeoutException ({e.Message})");
                }
                catch (OperationCanceledException)
                {
                    return;
                }
                catch (WebException e)
                {
                    log.Error($"{Name} update error ({e.Message})", e);
                }

                if (regResponce == null)
                {
                    if (await SleepTrueIfCanceled(1000))
                    {
                        return;
                    }
                    continue;
                }

                cache.SetVideoRegInfo(Ip, new VideoRegInfo
                {
                    Ip             = Ip,
                    BrigadeCode    = regResponce.BrigadeCode,
                    IveSerial      = regResponce.IveSerial,
                    Version        = regResponce.Version,
                    VideoRegSerial = regResponce.VideoRegSerial
                }, regResponce.CurrentDate);

                regResponce.Cameras.ForEach(number => AddNewCameraUpdator(parameters, number));

                log.Debug($"{Name} got info [{regResponce}]");

                // Запускаем процедуру задачу сбора статистики
                // statisticRegistrator.RegAsync(Ip, regResponce).Start();

                if (await SleepTrueIfCanceled(config.VideoRegPollingIntervalSeconds))
                {
                    return;
                }
            }
        }